【发布时间】:2011-03-26 08:13:56
【问题描述】:
我正在使用 simpleXML 在我的一个 XML 文档中添加一个子节点...当我对我的 simpleXML 对象执行 print_r 时,< 在视图源中仍显示为< .但是,在我使用 DOMDocument 将此对象保存回 XML 后,< 被转换为 <,> 被转换为 >
关于如何改变这种行为的任何想法?我试过添加dom->substituteEntities = false;,但这没有用。
//Convert SimpleXML element to DOM and save
$dom = new DOMDocument('1.0');
$dom->preserveWhiteSpace = false;
$dom->formatOutput = false;
$dom->substituteEntities = false;
$dom->loadXML($xml->asXML());
$dom->save($filename);
这里是我使用 <:>
$new_hint = '<![CDATA[' . $value[0] . ']]>';
$PrintQuestion->content->multichoice->feedback->hint->Passage->Paragraph->addChild('TextFragment', $new_hint);
问题是,我正在使用简单的 XML 来遍历 XML 文档中的某些节点,如果某个属性与给定的 ID 匹配,则使用 CDATA 添加一个特定的子节点。然后在所有处理之后,我使用 DOMDocument 将 XML 保存回文件,这是
这是我的整个课程文件的链接,因此您可以更好地了解我要完成的工作。具体参考底部的hint_insert()方法。
【问题讨论】:
-
&lt;在 XML 元素中根本不是合法字符(除非您在 CDATA 部分中)。你想完成什么? -
我正在尝试完成添加 CDATA 标记...检查原始帖子以获取更新的代码
-
感谢您的反对!当节点中有“”时,CDATA 标记在 xml 中是必需的(除非您转义)!与 XHTML 相同...
-
嗯,我没给你投反对票
-
这个问题与stackoverflow.com/questions/3418796/…有何不同?
标签: php xml simplexml domdocument