首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP的dom->createTextNode转义了一些字符

PHP的dom->createTextNode转义了一些字符
EN

Stack Overflow用户
提问于 2009-09-01 11:02:07
回答 2查看 3K关注 0票数 1

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

有没有可能它不转义任何字符?

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2009-09-01 11:06:53

如果某些字符没有转义,最终可能得不到有效的XML文件。

如果不想对任何字符进行转义,可以使用DOMDocument::createCDATASection来获取XML文件中的CDATA sections

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

代码语言:javascript
运行
复制
<tag><![CDATA[<greeting>Hello, world!</greeting>]]></tag>
票数 3
EN

Stack Overflow用户

发布于 2010-01-11 10:51:51

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

代码语言:javascript
运行
复制
    $rawXMLNode = $domDoc->createDocumentFragment();
    $rawXMLNode->appendXML("<tag>text</tag><tag2>text2</tag2>");
    $someNode->appendChild($rawXMLNode);

但是,我不认为您必须在不重新加载文档的情况下访问这个原始文本的DOM。另外,一些字符仍然不允许进入。我需要做一些字符串处理,以便使用下面的方法将一些php插入到html文档中:

代码语言:javascript
运行
复制
    $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);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1361817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档