J'ai un XML que je voudrais obtenir tous ses éléments. J'ai essayé d'obtenir ces éléments par les descendants() ou DescendantNodes(), mais les deux me revins noeuds répétésAppeler le DescendantNodes sans répéter chaque noeud
Par exemple, voici mon xml:
<Root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<FirstElement xsi:type="myType">
<SecondElement>A</SecondElement>
</FirstElement>
</Root>
et quand j'utiliser cet extrait:
XElement Elements = XElement.Parse(XML);
IEnumerable<XElement> xElement = Elements.Descendants();
IEnumerable<XNode> xNodes = Elements.DescendantNodes();
foreach (XNode node in xNodes)
{
stringBuilder.Append(node);
}
il me donne deux nœuds mais en répétant le <SecondElement>
. Je sais que les descendants appellent ses enfants et les enfants d'un enfant tout le temps, mais y a-t-il un autre moyen de l'éviter?
Ensuite, c'est le contenu de mon stringbuilder:
<FirstElement xsi:type="myType" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SecondElement>A</SecondElement>
</FirstElement>
<SecondElement>A</SecondElement>
Finalement, je veux seulement avoir A secondElement> FirstElement> B secondElement> FirstElement> –
paradisonoir
par "avoir" exactement ce que vous voulez dire que ? Êtes-vous * réellement * en train d'écrire ceux-ci dans un StringBuilder, ou était-ce juste pour le diagnostic? Il semblerait que vous ayez juste besoin d'un appel à Elements() –
non je dois les écrire dans un stringbuilder et les stocker. – paradisonoir