Fondamentalement, j'ai un script qui met à jour un document XML à divers endroits ... Cependant, j'ai besoin que le texte soit en CDATA ... Alors j'ai essayé ça :Comment puis-je obtenir PHP simplexml pour enregistrer <comme lui-même au lieu de <
$PrintQuestion->content->multichoice->feedback->hint->Passage->Paragraph->addChild('TextFragment', '<![CDATA[' . $value[0] . ']]>');
Malheureusement, quand j'économise le code XML dans le fichier, le < et> dans CDATA se présentent comme < et gt $ respectivement; codes est-il un moyen d'éviter cela?
Note: Notre analyseur ne sait pas lire les <
et >
codes, donc c'est un problème grave
après avoir fait un print_r de mon objet simple_xml, le < lui-même apparaît comme dans la source code!
Il doit être le domsave qui le convertit en code d'entité ... des idées comment désactiver cela?
//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 est, comme son nom l'indique, de simples modifications. Si vous avez besoin d'un contrôle approprié sur les nœuds, vous devriez envisager d'utiliser DOM. DOM a une méthode pour créer des sections CDATA. – Gordon
Votre analyseur comprend les sections CDATA mais pas '<'? C'est étrange. Vous voudrez peut-être mettre à jour votre analyseur ... –
C'est un projet de travail ... Je n'ai aucun contrôle sur l'analyseur – ThinkingInBits