我有这个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的内容进行字符串匹配或正则表达式之外,是否还有获取文本的内容?
感谢。
答案 0 :(得分:2)
如果您总是想要紧接<div id="sub">
之前的文字,那么您可以尝试
//div[@id='sub']/preceding-sibling::text()[1]
这将为您提供</strong>
和开头<div ...
之间的所有内容,即大写文本及其前导和尾随新行和空格。
答案 1 :(得分:2)
following-sibling
是axis,您仍然需要指定实际节点(在您的示例中,XPath处理器正在搜索名为following-sibling
的元素)。您使用::
将轴与节点分开。
试试这个:
//div[@id='overview']/strong[position()=2]/following-sibling::text()[1]
这指定了div中第二个strong
之后的第一个文本节点。