L'analyse de XML à l'aide de LINQ en c#
Dans ce fichier xml (http://www.studiovincent.net/list.xml):
<list version="1.0">
<meta>
<type>resource-list</type>
</meta>
<resources start="0" count="4">
<resource classname="Quote">
<field name="name">Vincent</field>
<field name="username">Hill</field>
<field name="age">31</field>
<field name="hair">black</field>
</resource>
<resource classname="Quote">
<field name="name">John</field>
<field name="username">Tedelon</field>
<field name="age">27</field>
<field name="hair">brown</field>
</resource>
<resource classname="Quote">
<field name="name">Michael</field>
<field name="username">Lopez</field>
<field name="age">20</field>
<field name="hair">red</field>
</resource>
<resource classname="Quote">
<field name="name">Frank</field>
<field name="username">Lopez</field>
<field name="age">25</field>
<field name="hair">black</field>
</resource>
</resources>
</list>
l'aide de ce code:
using System.Xml;
using.System.Xml.Linq;
XmlReader reader = XmlReader.Create("http://www.studiovincent.net/list.xml");
XElement el = XElement.Load(reader);
reader.Close();
var items = el.Elements("resources").Elements("resource").Descendants().DescendantNodes();
var items = from item in el.Elements("resources").Elements("resource").Descendants()
where item.Attribute("name").Value == "name" select item.FirstNode;
foreach (XNode node in items)
{
Console.WriteLine(node.ToString());
}
J'ai cette SORTIE:
Vincent
John
Michael
Frank
Code fonctionne très bien, mais j'ai besoin d'obtenir une valeur 31 qui correspond field name="age" où field name="name" est Vincent. Comment puis-je obtenir ce résultat?
OriginalL'auteur Vincenzo Lo Palo | 2013-01-22
Vous devez vous connecter pour publier un commentaire.
Je vous recommande de faire comme vous le feriez lors de la lecture XML naturellement.
Dans votre code, essayez de trouver tous les champs avec les
name
attribut"name"
.Ce processus ne peut pas être utilisée pour associer un nom avec un âge. Il est plus naturel de lire le fichier XML et de vérifier tous les
resource
éléments. Puis ajouter à cet élément certaines informations décrites dans lefield
éléments.T-il faire ce que vous voulez?
J'ai édité le post pour le document.De la racine.L'élément. Pour CultureInfo, c'est Système.La mondialisation
J'ai ce résultat: Vincent: 31 John: 27 Michael: 20 Frank: 25 j'ai besoin de seulement 31
Maintenant, j'ai 31 27 20 25. pour mon but, j'ai besoin seulement d'une valeur spécifique 31 pour obtenir en sortie
Oui, j'ai été mise à jour le code 😉 Maintenant ce n'est que le résultat de "Vincent". Que voulez-vous faire si il y a plusieurs "Vincent" ?
OriginalL'auteur Cédric Bignon