2009-12-06 6 views
0

Je tente de supprimer un noeud dans un fichier XML en utilisant Javascript. Le navigateur utilisé est Firefox. Im atteindre le nœud que je veux supprimer avec succès, puis Im essayant delNode.ParentNode.RemoveChild (delNode) mais quand je suis retourné au fichier xml sur mon disque dur, le nœud était toujours là. J'ai besoin de supprimer le noeud entier (pas seulement les enfants). Si quelqu'un pouvait me guider à quoi faire, je serai si reconnaissant;) MerciSupprimer un noeud XML en utilisant javascript dans firefox

Répondre

0

Merci pour l'aide. Je ne pouvais pas trouver un moyen de changer le contenu du fichier en javascript alors j'ai utilisé PHP. J'essayais simplement de supprimer le premier noeud dans mon xml activity1.xml. Voici le code:

$xdoc = new DomDocument; 
$xdoc->Load('images\activity\activity1.xml'); 
$xdoc->documentElement->removeChild($xdoc->documentElement->childNodes->item(1)); 
$xdoc->save('images\activity\activity1.xml'); 

Il suffit de supprimer le premier nœud quel que soit les enfants qu'il a;)

1

Cela devrait supprimer delNode. Avez-vous une erreur? Quel est le résultat de delNode.parentNode.removeChild (delNode)? Je fais la même chose tout le temps et ça marche pour moi.

Je suis désolé d'avoir raté la partie sur l'écriture dans le fichier. Utilisez nsiFile pour cela et un chrome:// url. Afin de profiter de ces choses, vous devrez probablement créer un répertoire avec un répertoire appelé 'chrome' qui aura votre script, un fichier chrome.manifest.

+0

Merci pour répondre. lors de l'implémentation de cette méthode delNode.parentNode.removeChild (delNode), mon code s'arrête sur cette ligne et ne fait pas le reste des fonctions. J'ai essayé d'une autre manière par y = xmlDoc.getElementsByTagName ("fichier") [0]; window.alert (y); xmlDoc.documentElement.removeChild (y); Dans ce dernier cas, je n'ai pas eu d'erreur et tout le code a été implémenté dans mon navigateur, mais quand je suis revenu au fichier xml sur mon disque dur, le nœud était toujours là. Je ne sais pas ce qui ne va pas puisque c'est la première fois que j'essaie ça. Une idée! et merci beaucoup – Beso

+3

Erm. La modification du DOM modifie uniquement votre copie chargée en mémoire, elle n'écrit pas dans le fichier à partir duquel vous l'avez chargé. Vous auriez besoin de re-sérialiser le DOM dans un fichier XML pour remplacer la copie du disque. Si vous êtes dans une page Web (pas navigateur chrome), vous n'aurez aucun accès à écrire sur le système de fichiers local. – bobince

+0

Oh, j'ai raté toute cette partie de l'écriture dans le fichier. C'est vrai que vous devez utiliser la classe chrome: // url et nsiFile pour écrire le fichier sur le disque. –

Questions connexes