Lecture spécifique des éléments XML à partir du fichier XML
J'ai le fichier XML suivant
<lexicon>
<word>
<base>a</base>
<category>determiner</category>
<id>E0006419</id>
</word>
<word>
<base>abandon</base>
<category>verb</category>
<id>E0006429</id>
<ditransitive/>
<transitive/>
</word>
<word>
<base>abbey</base>
<category>noun</category>
<id>E0203496</id>
</word>
<word>
<base>ability</base>
<category>noun</category>
<id>E0006490</id>
</word>
<word>
<base>able</base>
<category>adjective</category>
<id>E0006510</id>
<predicative/>
<qualitative/>
</word>
<word>
<base>abnormal</base>
<category>adjective</category>
<id>E0006517</id>
<predicative/>
<qualitative/>
</word>
<word>
<base>abolish</base>
<category>verb</category>
<id>E0006524</id>
<transitive/>
</word>
</lexicon>
J'ai besoin de lire ce fichier avec une application en C#, et si seulement le category
est verb
je veux imprimer l'ensemble de son élément word
.
Comment puis-je le faire?
ont u essayé à l'aide de Linq to XML ?
Pouvez-vous me montrer comment faire?
vous êtes censé faire votre propre recherche en premier, puis viennent quand vous êtes en difficulté. Une recherche sur google ou une recherche de ce qui aurait montré comment parser un fichier XML.
Pouvez-vous me montrer comment faire?
vous êtes censé faire votre propre recherche en premier, puis viennent quand vous êtes en difficulté. Une recherche sur google ou une recherche de ce qui aurait montré comment parser un fichier XML.
OriginalL'auteur Ruba | 2013-01-01
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser linq to xml.
OriginalL'auteur scartag
Vous pouvez utiliser un XPath, trop. Un peu vieux jeu, mais toujours efficace:
Je veux dire.. vous pouvez comme vous voulez, mais par rapport à linq to xml, c'est à l'ancienne.
OriginalL'auteur akton
Cette requête sera de retour tout le mot
XElement
. Si il n'y a plus d'un élément verbal de la catégorieverb
, que vous obtiendrez unInvalidOperationException
. Si il n'y a pas d'éléments avec la catégorieverb
, le résultat seranull
.OriginalL'auteur Sergey Berezovskiy
C'est comment j'allais le faire (le code ci-dessous a été testée, la totalité du code source fourni ci-dessous), à commencer par la création d'une classe avec des propriétés communes
charge à l'aide de XDocument avec INPUT_DATA à des fins de démonstration et de trouver le nom de l'élément avec lexique . . .
assurez-vous que la valeur et de l'utilisation de linq pour extraire le mot éléments . . .
La
where
instruction vérifie si la catégorie de l'élément existe et que la catégorie de la valeur n'est pas null et puis vérifier à nouveau que c'est un verbe. Vérifiez ensuite que les autres nœuds existe aussi . . .La requête linq sera de retour un IEnumerable< Typename > objet, de sorte que nous pouvons appeler ToArray< Typename >() pour lancer l'ensemble de la collection dans le type que nous voulons.
Ensuite l'imprimer pour l'obtenir . . .
Source Complet:
OriginalL'auteur rbtLong
Alternativement, vous pouvez utiliser XPath requête via
XPathSelectElements
méthode:OriginalL'auteur k.m