PHP';s dom->;createTextNode转义某些字符

PHP';s dom->;createTextNode转义某些字符,php,xml,dom,escaping,Php,Xml,Dom,Escaping,我正在PHP中使用dom->createTextNode()。我看到它会自动转义字符,例如/“”等。根据PHP的手册,这是一种标准行为 它是否可能不转义任何字符 谢谢。如果某些字符没有转义,最终可能无法获得有效的XML文件 如果您不想转义任何字符,可以使用,来获取XML文件,这会有所帮助 不过,请注意,您将在XML中获得这类内容(CDATA部分): <tag><![CDATA[<greeting>Hello, world!</greeting>]]>

我正在PHP中使用dom->createTextNode()。我看到它会自动转义字符,例如/“”等。根据PHP的手册,这是一种标准行为

它是否可能不转义任何字符


谢谢。

如果某些字符没有转义,最终可能无法获得有效的XML文件

如果您不想转义任何字符,可以使用,来获取XML文件,这会有所帮助

不过,请注意,您将在XML中获得这类内容(CDATA部分):

<tag><![CDATA[<greeting>Hello, world!</greeting>]]></tag>
你好,世界!]>

如果某些字符没有转义,最终可能无法获得有效的XML文件

如果您不想转义任何字符,可以使用,来获取XML文件,这会有所帮助

不过,请注意,您将在XML中获得这类内容(CDATA部分):

<tag><![CDATA[<greeting>Hello, world!</greeting>]]></tag>
你好,世界!]>

如果可以通过创建DomDocumentFragment节点并使用appendXML()方法附加原始文本来避免转义序列:

$rawXMLNode=$domDoc->createDocumentFragment();
$rawXMLNode->appendXML(“text2”);
$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);
$elem=$domHtml->getElementById('header');
$newElem=$domHtml->createDocumentFragment();
$newElem->appendXML(“”);
$elem->parentNode->replaceChild($newElem,$elem);
$filedata=$domHtml->saveHTML();
$filedata=str_replace('QQQ','?',$filedata);

如果可以通过创建DomDocumentFragment节点并使用appendXML()方法附加原始文本来避免转义序列:

$rawXMLNode=$domDoc->createDocumentFragment();
$rawXMLNode->appendXML(“text2”);
$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);
$elem=$domHtml->getElementById('header');
$newElem=$domHtml->createDocumentFragment();
$newElem->appendXML(“”);
$elem->parentNode->replaceChild($newElem,$elem);
$filedata=$domHtml->saveHTML();
$filedata=str_replace('QQQ','?',$filedata);

您可能做错了什么。这对我来说没有任何意义。粘贴一些代码。你可能做错了什么。这对我来说没有任何意义。粘贴一些代码。这仅在保存XML()时有效,使用saveHTML()时如何操作?这仅在保存XML()时有效,使用saveHTML()时如何操作?