XPath:我可以选择下一个(或上一个)兄弟节符合某些条件的节点吗?

时间:2010-07-08 03:58:50

标签: html xpath html-agility-pack

我正在使用Agility Pack重新格式化HTML文档,但我遇到了对XPath理解的限制。

在我正在使用的文档中,以下是一个常见的构造:

  

128 2

这是这样构建的:

128<img src="" style="display: none;" alt="^(" /><sup>2</sup><img src="" style="display: none;" alt=")" />

因此,当您选择并将其复制到剪贴板时,它将变为:

  

128 ^(2)

现在,我想使用XPath删除这些img标记。

这是我到目前为止所做的:

//img[@alt='^('  ???/sup]

如何根据直接兄弟的存在选择元素?

2 个答案:

答案 0 :(得分:2)

显然它是这样的:

//img[@alt='^(' and following-sibling::*[1][self::sup]]

那是(而且,我猜,在这里):

//img

img(任何地方)......

[@alt='^(' and  ...  ]

...其alt属性为'^('并且......

following-sibling::*[1]

......他的第一个兄弟姐妹......

[self::sup]

...可以称自己为sup

答案 1 :(得分:0)

离开我的头顶,使其成为复合状态。类似的东西:

//img[@alt='^('  ???/sup AND preceding-sibling::*[1] AND following-sibling::*[1]]