gpt4 book ai didi

php - 在 dom xml 元素中获取 cdata (html)

转载 作者:可可西里 更新时间:2023-11-01 01:07:49 24 4
gpt4 key购买 nike

我正在使用 DOM 创建一个 XML 文档,并从我需要放入元素的数据库中获取 HTML 有趣的字符,如 ä 和 å。但我无法让它真正发挥作用。

在元素中添加 CDATA HTML 以便我的输出变成这样的正确方法是什么:

<TRANSLATIONS>
<DENMARK>
<ERRORADDRESSLINE1REQUIRED><![CDATA[&auml; &aring;]]></ERRORADDRESSLINE1REQUIRED>
</DENMARK>
</TRANSLATIONS>

使用这个:

$sData = "<![CDATA[" . $value . "]]>";
$objLabel = $objXmlDoc->createElement($label, $sData);

并没有真正做到这一点并附加 $objXmlDoc->createCDATASection($value) 在另一个标签旁边创建一个元素,而不是在标签内。

我忽略了什么?

最佳答案

您必须将 CDATA 部分附加到您想要的元素中:

$dom = new DOMDocument('1.0', 'utf-8');
$dom->appendChild($dom->createElement('translations'))
->appendChild($dom->createElement('denmark'))
->appendChild($dom->createElement('error'))
->appendChild($dom->createCDataSection('&auml; &aring;'));

$dom->formatOutput = true;
echo $dom->saveXml();

输出:

<?xml version="1.0" encoding="utf-8"?>
<translations>
<denmark>
<error><![CDATA[&auml; &aring;]]></error>
</denmark>
</translations>

但是当您使用 UTF-8 时,不需要将 ä 和 å 放入 CDATA 部分:

$dom = new DOMDocument('1.0', 'utf-8');
$dom->appendChild($dom->createElement('translations'))
->appendChild($dom->createElement('denmark'))
->appendChild($dom->createElement('error', 'ä and å'));

$dom->formatOutput = true;
echo $dom->saveXml();

输出完全有效:

<?xml version="1.0" encoding="utf-8"?>
<translations>
<denmark>
<error>ä and å</error>
</denmark>
</translations>

关于php - 在 dom xml 元素中获取 cdata (html),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7040176/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com