Comment Diviser un fichier XML en plusieurs Fichiers XML basé sur les nœuds
J'ai un fichier XML comme suit
<?xml version="1.0>
<EMR>
<CustomTextBox>
<Text>WNL</Text>
<Type>TextBox</Type>
<Width>500</Width>
<id>txt1</id>
</CustomTextBox>
<CustomTextBox>
<Text>WNL</Text>
<Type>TextBox</Type>
<Width>500</Width>
<id>txt2</id>
</CustomTextBox>
<AllControlsCount>
<Width>0</Width>
<id>ControlsID</id>
</AllControlsCount>
</EMR>
Je veux diviser le fichier xml int o trois. Selon ses nœuds
Fichier 1:
<?xml version="1.0>
<CustomTextBox>
<Text>WNL</Text>
<Type>TextBox</Type>
<Width>500</Width>
<id>txt1</id>
</CustomTextBox>
Fichier 2:
<?xml version="1.0>
<CustomTextBox>
<Text>WNL</Text>
<Type>TextBox</Type>
<Width>500</Width>
<id>txt2</id>
</CustomTextBox>
Fichier 3:
<?xml version="1.0>
<AllControlsCount>
<Width>0</Width>
<id>ControlsID</id>
</AllControlsCount>
Également les nœuds sont dynamiques, ils peuvent changer. Comment puis-je partager ce fichier xml en tant que multiples selon les nœuds. Si quelqu'un sait merci de partager.
Nous demandez-vous à "écrire" votre logique personnalisée pour la création de nouveaux fichiers XML?. Vous pouvez créer un XPathExpression et écrire tous les intérieurs XML pour les nouveaux fichiers XML à l'aide de la classe XmlDocument.
j'ai juste un fichier xml qui est dynamicaly créé (comme ci-dessus) qui contiennent des diff contrôles comme des nœuds . Je veux Juste diviser par le contrôle de la( des nœuds).
Si vous nous demandez de nous écrire votre code? Merci de faire un effort pour vous trouver la solution (assez facile), et de ne poster que des problèmes spécifiques rencontrés.
donc, fondamentalement, il n'y a pas de logique basé sur les noms, mais vous voulez juste un fichier XML distinct pour chaque 2ème nœud de niveau (immédiat des enfants du nœud Racine)?
j'ai juste un fichier xml qui est dynamicaly créé (comme ci-dessus) qui contiennent des diff contrôles comme des nœuds . Je veux Juste diviser par le contrôle de la( des nœuds).
Si vous nous demandez de nous écrire votre code? Merci de faire un effort pour vous trouver la solution (assez facile), et de ne poster que des problèmes spécifiques rencontrés.
donc, fondamentalement, il n'y a pas de logique basé sur les noms, mais vous voulez juste un fichier XML distinct pour chaque 2ème nœud de niveau (immédiat des enfants du nœud Racine)?
OriginalL'auteur Nithesh | 2013-01-22
Vous devez vous connecter pour publier un commentaire.
Essayer LinqToXml:
Il va prendre tous les éléments définis à l'intérieur de l'élément racine et d'écrire son contenu dans des fichiers séparés.
OriginalL'auteur mipe34
Avec Linq to Xml c'est encore plus simple - vous pouvez utiliser XElement.Enregistrer méthode pour enregistrer n'importe quel élément de fichier xml distinct:
Ou une ligne
OriginalL'auteur Sergey Berezovskiy
Vous pouvez utiliser XmlTextReader et XmlWriter classes pour accomplir ce que vous désirez. Mais vous devez savoir où vous en avez besoin pour commencer à créer de nouveaux XML fichiers. En regardant votre exemple, vous voulez diviser chaque nœud contenues dans le nœud racine.
Qui signifie qu'une fois que vous commencez à lire le fichier XML, vous devez vous assurer que vous êtes à l'intérieur du nœud racine, alors vous avez besoin de suivre comment profondément dans le XML que vous êtes, de sorte que vous pouvez fermer le fichier lorsque vous atteignez le prochain nœud du nœud racine.
Voir ceci par exemple - je lire les données XML à partir de file.xml et open XML de l'écrivain. Quand j'arrive premier nœud contenues dans le nœud racine, je commence à écrire les éléments.
Je me souviens de la profondeur dans la variable "treeDepth", qui représente l'arbre XML de la structure de la profondeur.
Basés sur les lire nœud, je fais une action. Quand j'arrive à la Fin de l'élément qui a profondeur de l'arbre 1, cela signifie que je suis de nouveau dans le nœud racine, donc j'ai fermer le fichier XML et d'ouvrir une nouvelle.
Noter que ce code n'est PAS tout résoudre votre problème, mais explique simplement la logique nécessaire pour le résoudre complètement.
Pour obtenir de l'aide sur le format XML des lecteurs et des écrivains de lire les liens suivants:
http://support.microsoft.com/kb/307548
http://www.dotnetperls.com/xmlwriter
OriginalL'auteur Legoless