我有一个代码,例如:

<?php
class Files {
  protected function get() {
    return array(
      'files' => array(
        'file' => array(
          array(
            'filename' => 'test1.jpg',
            'modified' => '2015-01-01 00:00:00',
          ),
          array(
            'filename' => 'test2.jpg',
            'modified' => '2015-01-02 00:00:00',
          ),
          array(
            'filename' => 'test3.jpg',
            'modified' => '2015-01-03 00:00:00',
          ),
        ),
      )
    );
  }
}

JSON 输出为:
{
    "files": {
        "file": [
            {
                "filename": "test1.jpg",
                "modified": "2015-01-01 00:00:00"
            },
            {
                "filename": "test2.jpg",
                "modified": "2015-01-02 00:00:00"
            },
            {
                "filename": "test3.jpg",
                "modified": "2015-01-03 00:00:00"
            }
        ]
    }
}

XML 输出:
<response>
  <files>
    <file>
      <item>
        <filename>test1.jpg</filename>
        <modified>2015-01-01 00:00:00</modified>
      </item>
      <item>
        <filename>test2.jpg</filename>
        <modified>2015-01-02 00:00:00</modified>
      </item>
      <item>
        <filename>test3.jpg</filename>
        <modified>2015-01-03 00:00:00</modified>
      </item>
    </file>
  </files>
</response>

问题是我希望文件在 <file> 标签内,而不是在 <item> 标签内。

这是我想要获得的示例 XML 输出:
<response>
  <files>
    <file>
      <filename>test1.jpg</filename>
      <modified>2015-01-01 00:00:00</modified>
    </file>
    <file>
      <filename>test2.jpg</filename>
      <modified>2015-01-02 00:00:00</modified>
    </file>
    <file>
      <filename>test3.jpg</filename>
      <modified>2015-01-03 00:00:00</modified>
    </file>
  </files>
</response>

我怎样才能做到这一点?
我已经尝试了几乎所有我能想到的方法,但没有运气。

我尝试了以下答案,但没有帮助。我想答案是 ReSTLer 1 或 2,因为它太旧了:
Luracast Restler: "Naming" returned objects

编辑:

更改 XmlFormat::$defaultTagName = 'file'; 或类似的东西不是一个选项,因为我还需要在同一请求中重命名其他 <item> 标签。

编辑2:

我知道这可以通过使用我想要的格式创建我自己的“XmlFormat.php”文件来实现,但是当前的原始文件是否像以前一样支持这种自定义(根据这个答案:Luracast Restler: "Naming" returned objects)或者是这个功能后来被删除了?

最佳答案

我认为没有办法做到这一点,而不创建我自己的格式

关于php - Luracast ReSTLer 3 RC6 : How to rename XML objects names,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34183211/

10-11 07:28