Я использую simpleXML для добавления дочернего узла в один из моих документов XML ... когда я выполняю print_r для моего объекта simpleXML, <
все еще отображается как <
в источнике представления,Однако после того, как я сохраню этот объект обратно в XML с помощью DOMDocument, <
преобразуется в <
, а >
преобразуется в >
Есть идеи о том, как изменить это поведение?Я попытался добавить 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);
Здесь я использую <: </p>
$new_hint = '<![CDATA[' . $value[0] . ']]>';
$PrintQuestion->content->multichoice->feedback->hint->Passage->Paragraph->addChild('TextFragment', $new_hint);
Проблема в том, что яиспользуя простой XML для итерации по определенным узлам в документе XML, и если атрибут соответствует заданному идентификатору, конкретный дочерний узел добавляется с помощью CDATA.Затем, после всей обработки, я сохраняю XML обратно в файл, используя DOMDocument, где <преобразуется в <и т. Д. </p>
Вот ссылка на весь мой файл класса, так что вы можете получить лучшее представлениена то, что я пытаюсь достичь.В частности, обратитесь к методу hint_insert () внизу.
http://pastie.org/1079562