3

我有一些 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()[(preceding::dd)][某个整数]

或者

//text()[(preceding::dd)][last()]

但这一切现在都对我有用,因为带有“foo”的div计数- 未定义。我需要一些 xpath,例如 //dl/text() 但返回 'dl' 的直接祖先,没有更深的层次。

4

1 回答 1

4

所以我只需要在必需的标签之前获取第一个文本

这个怎么样:

//dd/preceding-sibling::text()[1]

即找到dd标签,然后为每个标签取最近的前面的兄弟文本节点。给定您的示例,这将返回一组两个文本节点,每个节点都包含文本

'
    "I need getting only this text"
    '

(没有单引号,即换行符,四个空格,双引号,我只需要得到这个文本,双引号,换行符,四个空格)。

于 2013-11-12T14:52:29.037 回答