コンテンツに基づいて XML ノードを選択するにはどうすればよいですか?
質問
XPath を使用して、その内容に基づいて XML ノードを選択するにはどうすればよいですか?
たとえば、次の XML があり、Ritchie を含む <author> ノードを選択して、著者のフルネームを取得したいと考えています。
<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>
解決
/books/book/authors/author[contains(., 'Ritchie')]
または
//author[contains(., 'Ritchie')]
他のヒント
この XPath は次のとおりです。
/books/book/authors/author[contains(., 'Ritchie')]
C# では、次のコードは「Ritchie, Dennis M.」を返します。
xmlDoc.SelectSingleNode("/books/book/authors/author[contains(., 'Ritchie')]").InnerText;
//author[contains(text(), 'Ritchie')]
所属していません StackOverflow