Comment puis-je obtenir la valeur d'un nœud spécifique dans un fichier XML?
De ce code XML:
<?xml version="1.0" encoding="utf-8"?>
<Tabel>
<Member>
<Naam>Cruciatum</Naam>
<Kills>1000</Kills>
<Deaths>10</Deaths>
<KD>100</KD>
</Member>
<Member>
<Naam>Ghostbullet93</Naam>
<Kills>10</Kills>
<Deaths>1</Deaths>
<KD>10</KD>
</Member>
</Tabel>
Comment puis-je obtenir (par exemple) les 10 prochaines à <Kills>
?
J'ai essayé plusieurs choses sans succès.
L'une des idées que j'ai eu a l'aide de ce code:
Dim doc = XDocument.Load("C:\members.xml")
Dim members = From m In doc.Element("Tabel").Elements("Member")
Select naam = m.Element("Naam").Value
For Each member In members
lstmembers.Items.Add(member)
Next
Mais je ne peux pas comprendre comment modifier ce morceau de code pour travailler avec ce que je dois faire maintenant.
(Le code ci-dessus fonctionne parfaitement de l'endroit où il est utilisé.)
- League of Legends, ou Hamlet?
- Battlefield 3 en fait 🙂
Vous devez vous connecter pour publier un commentaire.
Vous pouvez également utiliser XPath pour lire la valeur de l'élément:
Si, toutefois, vous avez l'intention de charger et d'utiliser toutes les données, il serait beaucoup plus facile à utiliser la sérialisation. Pour ce faire, vous devez d'abord créer des classes qui imitent la structure XML (par souci de simplicité, je vais juste utiliser les champs de type chaîne, mais il serait préférable d'utiliser les propriétés):
Puis désérialiser le XML comme ceci:
<Member>.</Member>
nœuds, seulement comme 20-ish à la fin.XPath
ouXmlDeserialization
recommandée par Steve sont d'excellentes options, mais pour un purLINQ
solution, vous avez juste besoin d'ajouter unWhere
clause à votre requête.members
sera toujours unIEnumerable<String>
dans cet exemple, donc si vous avez seulement 1 objet, vous devez faire quelque chose comme:ou
(Mon vb.NET est très rouillé, donc s'il vous plaît pardonnez les erreurs de syntaxe).