How can I get PHP simplexml to save lt; as itself instead of amp;lt;(如何让PHP implexml将lt;保存为自身,而不是amp;lt;)
本文介绍了如何让PHP implexml将<;保存为自身,而不是&;lt;的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
基本上,我有一个在不同位置更新XML文档的脚本...但是,我需要CDATA格式的文本...所以我尝试了一下: $PrintQuestion->content->multichoice->feedback->hint->Passage->Paragraph->addChild('TextFragment', '<![CDATA[' . $value[0] . ']]>');
遗憾的是,当我将XML保存回文件时,CDATA中的<;和>出现为它们各自的<;和$gt;代码,有没有办法避免这种情况?
注意:我们的解析器不知道如何读取<
和>
代码,因此这是一个严重的问题
执行Simple_XML对象的print_r后,<;在源代码中显示为其本身!
必须是域保存将其转换为实体代码...您知道如何禁用此功能吗? //Convert SimpleXML element to DOM and save
$dom = new DOMDocument('1.0');
$dom->preserveWhiteSpace = false;
$dom->formatOutput = false;
$dom->loadXML($xml->asXML());
$dom->save($filename);
推荐答案
正如我在评论中所说,SimpleXML对DOM节点的控制非常有限。以下是有关如何将DOMText节点替换为DOMCDATASection节点的示例。
$dom = new DOMDocument;
$dom->loadXML('<root><a>foo</a></root>');
$a = $dom->documentElement->childNodes->item(0);
$a->replaceChild(
$dom->createCDATASection('bar'),
$a->childNodes->item(0)
);
echo $dom->saveXml($a); // <a><![CDATA[bar]]></a>
有关如何使用DOMsee my answer here和some more here的详细示例
这篇关于如何让PHP implexml将<;保存为自身,而不是&;lt;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
织梦狗教程
本文标题为:如何让PHP implexml将<;保存为自身,而不是&;lt;


基础教程推荐
猜你喜欢
- 在PHP中根据W3C规范Unicode 2022-01-01
- YouTube API v3 点赞视频,但计数器不增加 2022-01-01
- 如何在 Laravel 5.3 注册中添加动态下拉列表列? 2021-01-01
- 如何替换eregi() 2022-01-01
- PHP PDO MySQL 查询 LIKE ->多个关键词 2021-01-01
- 有什么方法可以用编码 UTF-8 而不是 Unicode 返回 PHP`json_encode`? 2021-01-01
- PHP 类:全局变量作为类中的属性 2021-01-01
- 学说 dbal querybuilder 作为准备好的语句 2022-01-01
- Cron Jobs 调用带有变量的 PHP 脚本 2022-01-01
- 如何在 Laravel 中使用 React Router? 2022-01-01