XPath“;不是;。忽略带有特定标记的分支
我已经将一个网页加载到HTML敏捷包中,并拥有一个DOM。我想使用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) 有什么建议吗
标记中的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()