使用 RequestHandler->renderAs XML 将 `htmlspecialchars()` 应用于 CDATA
Using RequestHandler->renderAs XML applies `htmlspecialchars()` to CDATA
我需要将一些描述包装到 <![CDATA[...]]>
。
我在做什么:
public function cdata() {
$description = 'Den snabba bruna räven hoppade över den lata hunden';
$channel = array();
$channel['item'] = array(
'g:description' => '<![CDATA['.$description.']]>',
);
$this->RequestHandler->renderAs($this, 'xml');
$this->set('_rootNode', 'rss');
$this->set('xmlns:g', 'http://base.google.com/ns/1.0');
$this->set([
'channel' => $channel,
]);
$this->set('_serialize', ['xmlns:g','channel']);
}
我得到的:
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:g="http://base.google.com/ns/1.0">
<channel>
<item>
<g:description><![CDATA[Den snabba bruna räven hoppade över den lata hunden]]></g:description>
</item>
</channel>
</rss>
我想要的:
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:g="http://base.google.com/ns/1.0">
<channel>
<item>
<g:description><![CDATA[Den snabba bruna räven hoppade över den lata hunden]]></g:description>
</item>
</channel>
</rss>
问题:
CDATA 得到 htmlspecialchars,其中 <
和 >
转换为 <
和 >
。这里是 an example of what I need (source),请参见 第二个示例演示了 CDATA 部分的使用。
我用谷歌搜索了 cakephp 3
、xml
和 cdata
的各种组合,但一无所获,特别是检查了文档和此处。请帮忙!
它(尚)不受支持,在内部 XML 视图使用 Xml::fromArray()
进行序列化,它对所有非数字内容使用 DOMText
个节点。
现在,如果您需要 CDATA
个部分,则必须放弃使用序列化,并自己构建 XML(在视图模板中)。
我需要将一些描述包装到 <![CDATA[...]]>
。
我在做什么:
public function cdata() {
$description = 'Den snabba bruna räven hoppade över den lata hunden';
$channel = array();
$channel['item'] = array(
'g:description' => '<![CDATA['.$description.']]>',
);
$this->RequestHandler->renderAs($this, 'xml');
$this->set('_rootNode', 'rss');
$this->set('xmlns:g', 'http://base.google.com/ns/1.0');
$this->set([
'channel' => $channel,
]);
$this->set('_serialize', ['xmlns:g','channel']);
}
我得到的:
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:g="http://base.google.com/ns/1.0">
<channel>
<item>
<g:description><![CDATA[Den snabba bruna räven hoppade över den lata hunden]]></g:description>
</item>
</channel>
</rss>
我想要的:
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:g="http://base.google.com/ns/1.0">
<channel>
<item>
<g:description><![CDATA[Den snabba bruna räven hoppade över den lata hunden]]></g:description>
</item>
</channel>
</rss>
问题:
CDATA 得到 htmlspecialchars,其中 <
和 >
转换为 <
和 >
。这里是 an example of what I need (source),请参见 第二个示例演示了 CDATA 部分的使用。
我用谷歌搜索了 cakephp 3
、xml
和 cdata
的各种组合,但一无所获,特别是检查了文档和此处。请帮忙!
它(尚)不受支持,在内部 XML 视图使用 Xml::fromArray()
进行序列化,它对所有非数字内容使用 DOMText
个节点。
现在,如果您需要 CDATA
个部分,则必须放弃使用序列化,并自己构建 XML(在视图模板中)。