XPath“;不是;。忽略带有特定标记的分支

XPath“;不是;。忽略带有特定标记的分支,xpath,html-agility-pack,Xpath,Html Agility Pack,我已经将一个网页加载到HTML敏捷包中,并拥有一个DOM。我想使用XPATH提取页面上的所有文本(但不是标记中的javascript) 我想我需要一个//text()和一个“not”来忽略分支中包含的任何标记 我试过了 doc.DocumentNode.SelectNodes("//text()[not(self::script)]")) 及 但两者都不起作用。它们返回的节点的XPath属性的一个示例是(注意脚本) 我已经咨询了这两个职位 (这是一篇很好的帖子,但它展示了JS) 有什么建议吗

我已经将一个网页加载到HTML敏捷包中,并拥有一个DOM。我想使用XPATH提取页面上的所有文本(但不是
标记中的javascript)

我想我需要一个//text()和一个“not”来忽略分支中包含
的任何标记

我试过了

doc.DocumentNode.SelectNodes("//text()[not(self::script)]"))

但两者都不起作用。它们返回的节点的XPath属性的一个示例是(注意脚本)

我已经咨询了这两个职位

(这是一篇很好的帖子,但它展示了JS)


有什么建议吗?

第一次尝试拒绝所有作为脚本元素的文本节点,第二次尝试拒绝所有具有脚本节点子节点的文本节点。当然,在这两种情况下,情况永远都不是真的

您还没有清楚地解释您的需求,但我想您应该拒绝将脚本元素作为其父元素的所有文本节点,这可能是错误的

//text()[not(parent::script)]

这起作用了//*[not(self::script)]/text()(另一个出于某种原因没有)谢谢!
/html[1]/body[1]/div[2]/div[4]/div[1]/div[1]/div[1]/div[3]/script[1]/#text[1]
//text()[not(parent::script)]
//*[not(self::script)]/text()