如何根据内容选择XML节点?

时间:2020-03-05 18:43:48  来源:igfitidea点击:

如何使用XPath根据其内容选择XML节点?

如果我例如具有以下xml,我想选择包含Ritchie的<author> -node以获取作者的全名:

<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>

解决方案

回答

XPath为此:

/books/book/authors/author[contains(., 'Ritchie')]

在C中,以下代码将返回" Ritchie,Dennis M.":

xmlDoc.SelectSingleNode("/books/book/authors/author[contains(., 'Ritchie')]").InnerText;

回答

//author[contains(text(), 'Ritchie')]

回答

/books/book/authors/author[contains(., 'Ritchie')]

或者

//author[contains(., 'Ritchie')]