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;
基础教程推荐
猜你喜欢
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- 在多维数组中查找最大值 2021-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01