0

我尝试使用带有 HtmlAgilliyPack 的 XPath 选择“字符串 b”文本节点。

<div>
  string a<br/>
  string b<br/>
  string c<br/>
</div>

我不确定如何选择文本?

这行不通//div/text(1)

有人有什么建议吗?

4

2 回答 2

2

你的表达有两个问题:

  • XPath 从 1 开始计数,因此您需要第二个文本节点
  • text()是一个不接受参数的节点过滤器。如果要限制为第二个文本节点,请使用谓词[position() = 2]或短版本[2]

使用这个表达式:

//div/text()[2]

选择文本节点可能会带来一些麻烦,切断前导和尾随空格以及省略纯空格文本节点是依赖于实现的。

于 2013-06-15T11:49:25.907 回答
0

尝试:

//div/br[1]/following-sibling::text()[1]'

在第一个之后的直接文本br

于 2013-06-15T11:49:36.530 回答