zu speichern Ich verwende SimpleXML, um einen untergeordneten Knoten in einem meiner XML-Dokumente hinzuzufügen ... wenn ich eine print_r auf meinem simpleXML-Objekt mache, wird die <
immer noch als angezeigt <
in der Ansichtsquelle. Doch nachdem ich dieses Objekt wieder in XML DOMDocument speichern, wird die <
-<
umgewandelt und die >
->
Wie Sie DOMDocument davon abhalten, <as & lt
umgewandelt Alle Ideen, wie dieses Verhalten zu ändern? Ich habe versucht, dom->substituteEntities = false;
hinzuzufügen, aber das tat nicht gut.
//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);
Hier ist, wo ich bin mit dem <:
$new_hint = '<![CDATA[' . $value[0] . ']]>';
$PrintQuestion->content->multichoice->feedback->hint->Passage->Paragraph->addChild('TextFragment', $new_hint);
Das Problem, das ich einfach XML bin mit durch bestimmten Knoten im XML-Dokument zu durchlaufen, und wenn ein Attribut eines Spiel gegebenen ID wird ein bestimmter Kindknoten mit CDATA hinzugefügt. Nach der gesamten Verarbeitung speichere ich den XML-Code mit DOMDocument in die Datei zurück. Dort wird < in & lt konvertiert.
Hier ist ein Link zu meiner gesamten Klassendatei was ich versuche zu erreichen. Sehen Sie sich speziell die Methode hint_insert() unten an.
'<' ist einfach kein Rechtscharakter innerhalb eines XML-Elements (es sei denn, Sie in einem CDATA-Abschnitt sind). Was versuchst du zu erreichen? – MvanGeest
Ich versuche, ein CDATA-Tag hinzuzufügen ... Überprüfen Sie den ursprünglichen Beitrag für den aktualisierten Code – ThinkingInBits
Vielen Dank für die Abstimmung! CDATA-Tag ist notwendig (außer Sie fliehen) in xml, wenn Sie '<' and '>' innerhalb eines Knotens haben! Das selbe wie XHTML ... – xandercoded