php - 在 Yii 2 Response 中为 XML 标签添加属性

标签 php xml yii2

Yii2。 Controller 中的 Action (方法):

public function actionGet()
{
    Yii::$app->response->format = Response::FORMAT_XML;

    return [
        'items' => [
            ['id' => 'data'],
            ['id' => 'body'],
        ],
    ];
}

在输出处获取 XML:

<?xml version="1.0" encoding="UTF-8"?>
<response>
    <items>
        <item>
            <id>data</id>
        </item>
        <item>
            <id>body</id>
        </item>
    </items>
</response>

如何在 XML 标签中添加属性?并删除 response 标签:

<?xml version="1.0" encoding="UTF-8"?>
<items>
    <item update="true">
        <id>data</id>
    </item>
    <item update="false" new="true">
        <id>body</id>
    </item>
</items>

文档没有显示这种情况。

最佳答案

你不能。

此功能目前不受支持且不在路线图上。您必须构建自己的 ResponseFormatter(实现 http://www.yiiframework.com/doc-2.0/yii-web-responseformatterinterface.html)才能实现此目的。

参见:https://github.com/yiisoft/yii2/issues/5996

另外,删除 response 标签是不可能的。您可以通过为格式化程序设置 rootTag 值来重命名根标记。 http://www.yiiframework.com/doc-2.0/yii-web-xmlresponseformatter.html#%24rootTag-detail

关于php - 在 Yii 2 Response 中为 XML 标签添加属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36058558/

相关文章:

PHP XPath,无法检索目标标签内标签后的文本

php - 触发由父 View 引起的任何事件时退出 Tour - Intro.js

php - 使用 Yii2 过滤占位符

Yii2 两个 DetailView 并排

PHP 当 session 超时时,它会重定向整个页面而不是通过 ajax 加载的页面

php - 如何在 PHP 中编写一个 foreach 循环来计算具有不同元素的 XML 元素的值?

xml - PHPStorm 中的 ZenCoding : how to make XML tags self-closing?

java - xpath 获取多个节点值 - 使用 java 的 xml 解析器

C++ RapidXml - 使用 first_node() 遍历以修改 XML 文件中节点的值

php - 如何在 MySQL 中的多个表中进行搜索