以xml作为例子:
<list>
<element>
<title>Element 1</title>
<group>Group 1</group>
</element>
<element>
<title>Element 2</title>
<group>Group 1</group>
</element>
<element>
<title>Element 3</title>
<group>Group 1</group>
<group>Group 2</group>
</element>
<element>
<title>Element 4</title>
<group>Group 2</group>
<group>Group 3</group>
</element>
</list>
要获取所有组,我使用以下xpath:
//group/text()
并且它工作正常 - 我在python中使用set删除重复项,因为我不知道我是否可以使用xpath-来完成它。但是当我想获取包含“Group 3”的元素时,我尝试以下xpath:
//element[contains(group/text(), "Group 3")]
我得到一个空的结果。当我搜索包含“组1”的元素时:
//element[contains(group/text(), "Group 1")]
我用3个元素得到了正确的结果。如果我寻找“第2组”,我只得到一个错误的结果。
我没有考虑到什么?如何按群组进行搜索?
答案 0 :(得分:0)
contains
只能在另一个字符串中出现字符串时进行测试。 group/text()
不是字符串,而是节点的集合/序列。
您可以使用
//element[group/text() = "Group 1"]