我在PHP中使用dom->createTextNode()。我看到它会自动转义字符,例如,g /"“等。根据PHP手册,这是一个标准行为。
有没有可能它不转义任何字符?
谢谢。
发布于 2009-09-01 11:06:53
如果某些字符没有转义,最终可能得不到有效的XML文件。
如果不想对任何字符进行转义,可以使用DOMDocument::createCDATASection
来获取XML文件中的CDATA sections。
不过,请注意,您将在XML中获得这类内容(当然,CDATA部分):
<tag><![CDATA[<greeting>Hello, world!</greeting>]]></tag>
发布于 2010-01-11 10:51:51
如果可以通过创建DomDocumentFragment节点并使用appendXML()方法附加原始文本来避免转义序列:
$rawXMLNode = $domDoc->createDocumentFragment();
$rawXMLNode->appendXML("<tag>text</tag><tag2>text2</tag2>");
$someNode->appendChild($rawXMLNode);
但是,我不认为您必须在不重新加载文档的情况下访问这个原始文本的DOM。另外,一些字符仍然不允许进入。我需要做一些字符串处理,以便使用下面的方法将一些php插入到html文档中:
$elem = $domHtml->getElementById('header');
$newElem = $domHtml->createDocumentFragment();
$newElem->appendXML('<div id="header"><?php include("templates/header.html"); QQQ?></div>');
$elem->parentNode->replaceChild($newElem, $elem);
$filedata = $domHtml->saveHTML();
$filedata = str_replace('QQQ', '?', $filedata);
https://stackoverflow.com/questions/1361817
复制相似问题