Comment puis-je sélectionner un XML-nœud en fonction de son contenu?
Question
Comment puis-je utiliser XPath pour sélectionner un format XML-nœud en fonction de son contenu?
Si j'ai par exempleavoir le code xml suivant et je veux choisir le <author>-nœud qui contient Ritchie pour obtenir de l'auteur nom complet:
<books>
<book isbn='0131103628'>
<title>The C Programming Language</title>
<authors>
<author>Ritchie, Dennis M.</author>
<author>Kernighan, Brian W.</author>
</authors>
</book>
<book isbn='1590593898'>
<title>Joel on Software</title>
<authors>
<author>Spolsky, Joel</author>
</authors>
</book>
</books>
La solution
/books/book/authors/author[contains(., 'Ritchie')]
ou
//author[contains(., 'Ritchie')]
Autres conseils
XPath est la suivante:
/books/book/authors/author[contains(., 'Ritchie')]
En C#, le code suivant retourne "Ritchie, Dennis M.":
xmlDoc.SelectSingleNode("/books/book/authors/author[contains(., 'Ritchie')]").InnerText;
//author[contains(text(), 'Ritchie')]
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow