コンテンツに基づいて XML ノードを選択するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/30018

  •  09-06-2019
  •  | 
  •  

質問

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')]
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top