Comment puis-je trouver un nœud XML par chemin de Linq-to-XML
Si je reçois le chemin d'accès à un nœud spécifique comme une chaîne, je peux en quelque sorte de trouver facilement dit nœud à l'aide de Linq/Méthode de la XElement ( ou XDocument ).
Il ya tellement de nombreux types différents d'objets XML il serait bien aussi si comme un bonus supplémentaire, vous pourriez m'indiquer un guide sur le pourquoi/comment utiliser les différents types.
EDIT: Ok après avoir été pointé vers XPathSelectElement je suis en train de l'essayer donc je peux lui donner le droit de réponse, je n'arrive pas à le faire fonctionner. C'est le XML, je suis en train de sortir
<Product>
<Name>SomeName</Name>
<Type>SomeType</Type>
<Quantity>Alot</Quantity>
</Product>
et mon code
string path = "Product/Name";
string name = xml.XPathSelectElement(path).Value;
remarque ma chaîne vient d'ailleurs donc je suppose qu'il ne doit pas être littérale ( au moins en mode debug, il ressemble à celui ci-dessus). J'ai aussi essayé d'ajouter /en avant. Il me donne une valeur null réf.
OriginalL'auteur Ingó Vals | 2010-08-11
Vous devez vous connecter pour publier un commentaire.
Essayez d'utiliser le
XPathSelectElement
méthode d'extension deXElement
. Vous pouvez passer à la méthode d'une expression XPath à évaluer. Par exemple:Modifier:
En réponse à votre modifier, vérifier votre expression XPath. Si votre document ne contient que petit extrait puis
/Product/Name
fonctionnera comme slash effectue une recherche à partir de la racine du document:Si il y a d'autres produits et
<Product>
n'est pas le nœud racine, vous aurez besoin de modifier le XPath vous êtes en utilisant.La variable nommée xml est juste que la partie que j'ai mentionné, mais c'est une partie d'un grand arbre XML et cette partie a été passé en paramètre. Si je vérifie la variable xml en mode debug, il montre le produit XML ci-dessus. J'ai aussi essayé de mettre dans l'original Xpath et ça ne fonctionne pas non plus.
Ok enfin réussi à le faire fonctionner en utilisant ("./Name")
BTW, le "à l'aide" requis par le Système.Xml.XPath;
OriginalL'auteur nukefusion
Vous pouvez également utiliser XPathEvaluate
Donné le code xml suivant:
Cela devrait afficher le contenu à partir des éléments du nœud.
OriginalL'auteur stephenlloyd