Comment puis-je ajouter un document XML à un nœud xml dans C#?Ajouter un document XML à un nœud XML en C#?
Répondre
Un XmlDocument
est essentiellement un XmlNode
, vous pouvez l'ajouter comme vous le feriez pour tout autre XmlNode
. Cependant, la différence provient du fait que ceXmlNode
n'appartient pas au document cible, par conséquent vous devrez utiliser la méthode ImportNode puis effectuer l'ajout.
// xImportDoc is the XmlDocument to be imported.
// xTargetNode is the XmlNode into which the import is to be done.
XmlNode xChildNode = xSrcNode.ImportNode(xImportDoc, true);
xTargetNode.AppendChild(xChildNode);
Peut-être comme ceci:
XmlNode node = ...... // belongs to targetDoc (XmlDocument)
node.AppendChild(targetDoc.ImportNode(xmlDoc.DocumentElement));
Marc
AFAIK, vous devez ** * importer un nœud si elle ne fait pas partie du XmlDocument courant avant vous pouvez l'ajouter. Vois ma réponse. – Cerebrus
Oui, il semble que vous devez appeler ImportNode en effet, mais que * va * créer une copie du document Xml ..... –
Oui:
XmlNode imported = targetNode.OwnerDocument.ImportNode(otherDocument.DocumentElement, true);
targetNode.AppendChild(imported);
Je pense que cela crée un clone de votre document bien.
Une fois que vous avez le nœud racine du document XML en question, vous pouvez l'ajouter en tant que nœud enfant du nœud en question. Cela a-t-il du sens?
Disons que vous avez la construction suivante:
La structure suivante est stockée dans un XmlElement nommé xmlelement:
</root>
et la structure suivante est stockée dans un objet XmlNode nommé FooNode ;
<foo>
<bar>This is a test</bar>
<baz>And this is another test</baz>
</foo>
Ensuite, vous effectuez les opérations suivantes:
XmlNode node = doc.ImportNode(FooNode.SelectSingleNode("foo"), true);
xmlElement.AppendChild(node);
aide quelqu'un espère que ce
- 1. Convertir un nœud DOM ou Document en XML en JavaScript
- 2. Ajouter un attribut à un nœud xml avec nant
- 3. Création d'un nœud parent pour le document XML en C#
- 4. Comment mettre à jour un nœud XML?
- 5. Ajout d'attributs à un nœud XML
- 6. Créer un élément dans un document xml
- 7. Ajouter un attribut XML Namespace à un fichier XML tiers?
- 8. Importer un document XML
- 9. libxml pour C++: Comment ajouter un nœud racine à l'arborescence XML?
- 10. XML interrogeant un nœud particulier à partir de C#
- 11. Comment ajouter un attribut à un noeud XML sérialisé?
- 12. Comment trouver un nœud XML spécifique?
- 13. Mise à jour ou insertion d'un nœud dans un document XML
- 14. Lier un document XML à WPF TreeView
- 15. Générer un hachage de document XML en C#
- 16. Editer le nœud Xml
- 17. créer et diffuser un document XML volumineux en C++
- 18. Comment référencer un document XML à partir d'un second document XML
- 19. JQuery: comment ajouter un noeud XML?
- 20. Analyser le document XML en C#
- 21. Copiez un document XML à l'autre en utilisant DOM
- 22. Comment sélectionner un nœud XML en fonction de son contenu?
- 23. Comment mieux mettre à jour un nœud XML dans MSBuild
- 24. Valeur de réglage pour un nœud dans le document XML en Python
- 25. Insérer un nœud XML à une position spécifique d'un document existant
- 26. VB.NET insertion de nœuds xml dans un document XML existant
- 27. Ajouter un espace de noms XML à un document existant dans ruby
- 28. Comment obtenir un nœud XML à partir de XDocument
- 29. comment créer un document XML à la volée avec xquery?
- 30. JAXB - Ajouter un nœud au XML en tant que lien html
ah oui, mais qu'est-ce que xSrcNode? Pourquoi j'obtiens le message d'erreur: Impossible d'importer des noeuds de type 'Document'. Quel type est xTargetNode? – fijiaaron
@fijiaaron Vous devez sélectionner l'élément racine du document: 'XmlNode xChildNode = xSrcNode.ImportNode (xImportDoc.DocumentElement, true);' – nmat
Si votre XmlDoc est actuellement tapé en tant que XmlNode, ou si vous essayez d'importer un XmlNode vous pouvez faire à la place 'XmlNode xChildNode = xSrcNode.ImportNode (xImportDoc.OwnerDocument.DocumentElement, true);' –