无法使用XPath查询访问文本

时间:2015-02-01 17:49:46

标签: xpath

我有这个html代码段

<div id="overview">
    <strong>some text</strong>
    <br/>
    some other text
    <strong>more text</strong>
    TEXT I NEED IS HERE
    <div id="sub">...</div>
</div>

如何获取我要查找的文字(以大写字母显示)?

我试过这个,我收到一条错误消息,说无法找到该元素。

"//div[@id='overview']/strong[position()=2]/following-sibling"

我试过这个,我得到了id = sub的div,但没有得到文本(正确的)

"//div[@id='overview']/*[preceding-sibling::strong[position()=2]]"

除了使用概述div的内容进行字符串匹配或正则表达式之外,是否还有获取文本的内容?

感谢。

2 个答案:

答案 0 :(得分:2)

如果您总是想要紧接<div id="sub">之前的文字,那么您可以尝试

//div[@id='sub']/preceding-sibling::text()[1]

这将为您提供</strong>和开头<div ...之间的所有内容,即大写文本及其前导和尾随新行和空格。

答案 1 :(得分:2)

following-siblingaxis,您仍然需要指定实际节点(在您的示例中,XPath处理器正在搜索名为following-sibling的元素)。您使用::将轴与节点分开。

试试这个:

//div[@id='overview']/strong[position()=2]/following-sibling::text()[1]

这指定了div中第二个strong之后的第一个文本节点。