【发布时间】:2014-01-10 11:29:56
【问题描述】:
将text() 与如下索引一起使用的目的和用法是:text()[index]?
我观察到在这个例子中//p/text[2] 只让我得到paragraph text:
<p>
<strong>important text</strong>
paragraph text
</p>
【问题讨论】:
将text() 与如下索引一起使用的目的和用法是:text()[index]?
我观察到在这个例子中//p/text[2] 只让我得到paragraph text:
<p>
<strong>important text</strong>
paragraph text
</p>
【问题讨论】:
您的p 元素节点有三个子节点:
text 节点strong 元素节点text 节点,其中包含空格,后跟 paragraph text,后跟空格如果您使用//p/text(),则选择所有text 子节点,使用//p/text()[2] 您选择第二个text 子节点(考虑到所有类型的节点,这是第三个子节点)。
【讨论】:
strong 之前的空格被算作文本节点。根据您的回复,我了解到text() 可以被分割(分割),而其他tags (like strong or b) 存在于文本之间。
//p/text() 选择多个文本节点(示例中的两个),就像//p/* 选择所有子元素一样(示例中只有一个,但如果有更多,它将选择多个)。