我有一些HTML代码:
<dl>
<div>
<div>foo</div>
<div>
"I need getting only this text"
<dd>
<div>foo</div>
<div>foo</div>
</dd>
<div>
<div>foo</div>
<div>
"I need getting only this text"
<dd>
<div>foo</div>
<div>foo</div>
</dd>
</dl>
所以我需要只有之前的第一个文本(不是“foo”)。 我试过像
这样的语法// text()[(前面:: dd)] [某个整数]
或
//文本()[(前述:: DD)] [最后()]
但现在一切都在为我工作,因为 div 的计数与“foo” - 未定义。 我需要一些xpath,比如// dl / text(),但返回'dl'的直接祖先,没有更深层次的。
答案 0 :(得分:4)
所以我只需要在必需的标签之前获得第一个文本
这个怎么样:
//dd/preceding-sibling::text()[1]
即。找到dd
标签,然后为每个标签取最近的前一个兄弟文本节点。给出您的示例,这将返回一组两个文本节点,每个节点包含文本
'
"I need getting only this text"
'
(没有单引号,即换行符,四个空格,双引号,我只需要获取此文本,双引号,换行符,四个空格)。