Comment fusionner deux XmlDocuments en C#
Je veux fusionner deux XmlDocument
s par l'insertion d'un deuxième document XML à la fin d'un Xmldocument
en C#. Comment est-ce fait?
- J'ai essayé de modifier une question pour le rendre plus clair. J'espère que je ne change pas le sens de ce que vous essayiez de le demander.
- Merci. j'ai trouvé une solution avec pas de cycle: XmlNode footerNode = un.CreateElement("AJOUTER"); footerNode.InnerXml = b.SelectSingleNode("/root").InnerXml; un.DocumentElement.AppendChild(footerNode);
- Veuillez noter que ce site n'est pas un code d'écriture de service. Si vous modifier votre question à décrire ce que vous avez essayé jusqu'à présent et où vous êtes coincé, alors nous pouvons essayer de l'aider avec des problèmes spécifiques. Vous devriez également lire Comment Demander.
Vous devez vous connecter pour publier un commentaire.
Quelque chose comme ceci:
Noter qu'il ignore l'élément du document lui-même du document B - donc, si cela a un autre nom de l'élément, ou les attributs que vous souhaitez copier, vous aurez besoin de savoir exactement ce que vous voulez faire.
EDIT: Si, par votre commentaire, vous souhaitez intégrer le ensemble du document B, dans Un document, c'est relativement facile:
Ce sera encore ignorer des choses comme la déclaration XML du document B si il y en a un - je ne sais pas ce qui se passerait si vous avez essayé d'importer le document lui-même comme un nœud d'un document différent, et il comprenait une déclaration XML... mais je crois que cela va faire ce que vous voulez.
De l'insertion de l'ensemble d'un document XML à la fin d'un autre document XML est en fait la garantie de produire XML non valide. XML exige qu'il en existe une, et une seule "document" de l'élément. Donc, en supposant que vos fichiers ont été comme suit:
A.xml
B.xml
Le document obtenu simplement en ajoutant l'une à l'extrémité de l'autre:
Est XML non valide.
En supposant que, au contraire, que les deux documents de partager un document commun élément, et vous souhaitez insérer les enfants de l'élément document de B dans Un document de l'élément, vous pouvez utiliser les éléments suivants:
Ceci va produire le document suivant, compte tenu de mes exemples ci-dessus:
C'est la manière la plus rapide façon la plus propre de fusion de documents xml.
De mauvaises nouvelles. Aussi longtemps que les documents xml peuvent avoir qu'un seul élément racine vous ne pouvez pas simplement mettre le contenu d'un document à la fin de la seconde. Peut-être cette est ce que vous recherchez? Il montre comment vous pouvez facilement fusionner des fichiers xml à l'aide de Linq-to-XML
Alternativement, si vous êtes en utilisant XmlDocuments vous pouvez essayer de le faire comme ça: