关于xpath:如何根据其内容选择XML节点?

关于xpath:如何根据其内容选择XML节点?

How do I select an XML-node based on its content?

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<books>
    <book isbn='0131103628'>
        The C Programming Language
       
            Ritchie, Dennis M.</author>
            Kernighan, Brian W.</author>
        </authors>
    </book>
    <book isbn='1590593898'>
        Joel on Software
       
            Spolsky, Joel</author>
        </authors>
    </book>
</books>

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

要么

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

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


XPath为此:

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

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

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


推荐阅读