je travaillais avec un certain XML où aucun licenciementÉvite Licenciements dans les documents XML
<person>
<eye>
<eye_info>
<eye_color>
blue
</eye_color>
</eye_info>
</eye>
<hair>
<hair_info>
<hair_color>
blue
</hair_color>
</hair_info>
</hair>
</person>
étaient Comme vous pouvez le voir, l'œil-couleur sous-étiquette fait référence à l'oeil dans son nom, donc il y avait pas besoin d'éviter les licenciements, je pouvais obtenir la couleur des yeux en une seule ligne après le chargement du XML dans un jeu de données:
dataset.ReadXml(path);
value = dataset.Tables("eye_info").Rows(0)("eye_color");
Je ne sais que ce n'est pas la façon la plus intelligente de le faire, et cette situation, je vais avoir maintenant n'était pas imprévu.
Maintenant, disons que je dois lire de xml qui sont dans ce format:
<person>
<eye>
<info>
<color>
blue
</color>
</info>
</eye>
<hair>
<info>
<color>
blue
</color>
</info>
</hair>
</person>
Donc, si je tente de l'appeler comme ceci:
dataset.ReadXml(path);
value = dataset.Tables("info").Rows(0)("color");
Il y aura une redondance, parce que Je pouvais seulement aller jusqu'à un niveau supérieur pour identifier un seul champ dans un XML avec ma méthode précédente, et le 'désambiguateur' est trois niveaux ci-dessus.
Existe-t-il un moyen pratique d'atteindre sans erreur un seul champ avec tous les champs ci-dessus (ou au moins quelques)?
- [EDIT] -
J'ai fait une autre question demandant comment je pourrais obtenir un certain nœud avec LINQ, check it out.
J'irais avec Linq au Xml, c'est assez naturel. –
Merci, j'ai eu un problème en essayant de l'utiliser .. vérifier la mise à jour – Marcelo