Bonjour,
J'effectue un portage de PHP4 en PHP5 et je bloque sur les namespaces (je sais, rien d'original...).
Je dois appliquer une transformation sur un sous-arbre et le problème est que la méthode saveXML() me retourne le sous-arbre sous forme de chaine de caractères mais sans les déclarations des namespaces qui y sont utilisés : pas de xmlns:prefix="" !!! En conséquence de quoi, je ne peux pas charger le sous-arbre en tant que document.
En PHP4, la fonction dump_node() avait le même souci mais la fonction add_namespace() me permettait d'ajouter les namespaces que je connais par ailleurs.
Y-a-t'il une autre solution que de partir dans le tripatouillage avec des expressions régulières ???
Merci de vos réponses
Quelques bouts de code...
Sous-arbre retourné par saveXML() :PHP5 en erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <txs:args><txs:arg><![CDATA[loadsave.txs]]></txs:arg></txs:args>PHP4 qui marche:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $xml = new DOMDocument(); $xml->loadXML($n->ownerDocument->saveXML($n->firstChild));
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $xDoc = $n->owner_document(); $node = $n->first_child(); $node->add_namespace("http://sourceforge.net/projects/txs", "txs"); $xml = $xDoc->dump_node($node);
Partager