2010-05-01 8 views
2

J'ai un doc XML avec une structure comme celle-ci:C# XML ajouter un nœud XML comme un enfant à un autre noeud particulier

<Book> 
    <Title title="Door Three"/> 
    <Author name ="Patrick"/> 
</Book> 

<Book> 
    <Title title="Light"/> 
    <Author name ="Roger"/> 
</Book> 

Je veux être en mesure d'ajouter mélodramatique noeuds XML à ce XML dans un endroit particulier. Disons que je voulais ajouter un nœud Link en tant qu'enfant au nœud auteur dont le nom est Roger.

Je pense que c'est mieux si la fonction contenant cette logique est passée un paramètre pour le nom d'ajouter un nœud XML, s'il vous plaît conseiller et quel est le code dont j'ai besoin pour ajouter des nœuds XML à un certain endroit dans le XML?

Maintenant, je suis en utilisant la méthode .AppendChild() mais elle ne permet pas pour moi de spécifier un nœud parent d'ajouter sous ...

+0

Pouvez-vous poster le code d'exemple que vous avez déjà écrit? –

Répondre

2

AppendChild ajoutera le noeud passé au nœud que vous invoquez sur.

Donc, si vous sélectionnez le nœud Author, vous pouvez ajouter un nouveau nœud à lui:

XmlNode author = XmlDocument.SelectSingleNode("/Book/Author[@name='Roger']"); 
author.AppendChild(otherElementToAppend); 
+0

Comment puis-je trouver dynamiquement le nœud auquel je veux ajouter un nœud enfant? Je voulais ajouter un noeud Link en tant qu'enfant au noeud auteur dont le nom est Roger. – kacalapy

+0

@kacalapy - Réponse mise à jour avec l'exemple – Oded

+0

si tous mes nœuds xml étaient tous et ainsi démarré "node" puis-je parcourir chaque nœud dans mon xml avec XmlNode author = XmlDocument.SelectSingleNode ("//node/Auteur [@ name = 'Roger'] "); auteur.AppendChild (otherElementToAppend); – kacalapy

Questions connexes