2010-09-19 8 views
0

J'essaye d'éditer quelques données de xml. Après cela, je veux enregistrer les données dans un fichier.SimpleXML de PHP n'enregistre pas les données éditées

Le problème est que les données éditées ne sont pas enregistrées par simplexml mais que le nœud a changé. Var_dump() affiche les nouvelles données, mais pas asXML().

Répondre

0

Assurez-vous que votre script a le droit d'écriture à data.xml

+0

Ce n'est pas le problème car l'ajout de certains nœuds fonctionne correctement. – adnek

+0

Vous ajoutez les noeuds à la chaîne en mémoire. – codaddict

0

Les éléments du tableau de résultats XPath ne sont pas des références PHP ($ref = &$var) aux nœuds d'arbres réels, de sorte que cette ligne

$spieler[$i-1] = $_POST['spieler' .$i]; 

ne sont pas en train de modifier quoi que ce soit dans l'arborescence, vous écrasez simplement une entrée dans un tableau complètement indépendant.

+0

Ah ok merci pour cela. Alors, comment puis-je changer l'arbre? Je sais que c'est possible avec '$ xml-> element [0] = "foo"' par exemple, mais ce n'est pas très beau parce que j'ai besoin de sélectionner le noeud avec une valeur d'attributs. – adnek

+0

Vous préférerez peut-être utiliser le DOM complet et utiliser ':: replaceChild()' avec les données mises à jour. Je n'ai pas utilisé SimpleXML moi-même, mais il doit y avoir quelque chose dans les résultats de xpath renvoyés pour déterminer où se trouve le résultat dans l'arbre. –