我正在从头构建一个XML文件,需要知道htmlentities()是否会转换每个可能破坏XML文件的字符(可能还有UTF-8数据)?值将来自twitter/flickr feed,所以我需要确定!
我正在使用simpleXML在我的一个XML文档中添加子节点...当我在simpleXML对象上执行print_r时,<仍然<在视图源中显示为a .但是,在使用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);
Run Code Online (Sandbox Code Playgroud)
这是我正在使用<:
$new_hint = '<![CDATA[' . $value[0] . ']]>';
$PrintQuestion->content->multichoice->feedback->hint->Passage->Paragraph->addChild('TextFragment', $new_hint);
Run Code Online (Sandbox Code Playgroud)
问题是,我使用简单的XML来迭代XML文档中的某些节点,如果属性与给定的ID匹配,则会添加一个特定的子节点和CDATA.然后在所有处理之后,我使用DOMDocument将XML保存回文件,这是<转换为<等的地方.
这是我的整个类文件的链接,因此您可以更好地了解我正在尝试完成的任务.具体请参考底部的hint_insert()方法.