我正在使用DOM创建XML文档,并从数据库中获取了ä和å之类的HTML有趣字符,我需要将它们放入元素中.但是我无法使其真正起作用.
在元素中添加CDATA HTML的正确方法是什么,这样我的输出就变成这样:
使用这个:
$sData = "";
$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('ä å'));
$dom->formatOutput = true;
echo $dom->saveXml();
输出:
但是在使用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();
输出完全有效:
ä and å
标签:dom,xml,php
来源: https://codeday.me/bug/20191102/1990482.html