【问题标题】:xpath - text()[index] usagexpath - text()[index] 用法
【发布时间】:2014-01-10 11:29:56
【问题描述】:

text() 与如下索引一起使用的目的和用法是:text()[index]

我观察到在这个例子中//p/text[2] 只让我得到paragraph text

<p>
    <strong>important text</strong>
    paragraph text
</p>

【问题讨论】:

    标签: html xml dom xpath


    【解决方案1】:

    您的p 元素节点有三个子节点:

    1. 带有空格的text 节点
    2. strong 元素节点
    3. 一个 text 节点,其中包含空格,后跟 paragraph text,后跟空格

    如果您使用//p/text(),则选择所有text 子节点,使用//p/text()[2] 您选择第二个text 子节点(考虑到所有类型的节点,这是第三个子节点)。

    【讨论】:

    • 我的错,我忘记了strong 之前的空格被算作文本节点。根据您的回复,我了解到text() 可以被分割(分割),而其他tags (like strong or b) 存在于文本之间。
    • @h4k1m,一个元素可以有混合内容,其中文本与元素子元素混合。单个文本节点不被分割或分割。 //p/text() 选择多个文本节点(示例中的两个),就像//p/* 选择所有子元素一样(示例中只有一个,但如果有更多,它将选择多个)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-21
    • 1970-01-01
    • 2011-02-22
    • 2021-04-30
    • 2019-11-25
    • 2015-02-09
    • 1970-01-01
    相关资源
    最近更新 更多