【发布时间】:2016-01-12 20:38:37
【问题描述】:
我是 Xpath 的新手,在处理更复杂的部分之前,我一直在尝试使用 xpath 测试站点了解一些基本示例。
我试图准确了解如何将 contains 函数与其他条件结合使用,但有点困难。
这是我的 xml:
<root xmlns:foo="http://www.foo.org/" xmlns:bar="http://www.bar.org">
<actors>
<actor id="1">Christian Bale</actor>
<actor id="2">Liam Neeson</actor>
<actor id="3">Michael Caine</actor>
</actors>
<foo:singers>
<foo:singer id="4">Tom Waits</foo:singer>
<foo:singer id="4">B.B. King</foo:singer>
<foo:singer id="6">Ray Charles</foo:singer>
</foo:singers>
</root>
为了复制我试图解析的 xml(或更准确地说是 html)的类型,我重复了其中一个歌手属性。
所以我尝试使用 contains 来查找 foo:singer id = 4 并包含 "Tom Waits"。
根据我阅读的内容和看到的示例,您可以使用这种表达方式:
.//*[@id =4 and //foo:singer[contains(text(),'Tom Waits')]]/text()
但是,这将返回 Tom Waits 和 BB King。
如果我分别使用这两个表达式,它们会得到预期的结果,所以不确定它们是否/如何组合。
如果你能帮助我,非常感谢。
安德鲁
【问题讨论】:
标签: xpath