Wie wähle ich einen XML-Knoten anhand seines Inhalts aus?
Frage
Wie kann ich mit XPath einen XML-Knoten anhand seines Inhalts auswählen?
Wenn ich z.B.Ich habe die folgende XML-Datei und möchte den <Autor>-Knoten auswählen, der Ritchie enthält, um den vollständigen Namen des Autors zu erhalten:
<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>
Lösung
/books/book/authors/author[contains(., 'Ritchie')]
oder
//author[contains(., 'Ritchie')]
Andere Tipps
Der XPath hierfür lautet:
/books/book/authors/author[contains(., 'Ritchie')]
In C# würde der folgende Code „Ritchie, Dennis M.“ zurückgeben:
xmlDoc.SelectSingleNode("/books/book/authors/author[contains(., 'Ritchie')]").InnerText;
//author[contains(text(), 'Ritchie')]
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow