我正在使用HTML Agility Pack在同一页面上执行两项不同的操作 .
对于第一个我需要删除像脚本,样式等元素 . 但是对于第二个,我必须保留所有元素 .
因为我不能在第一部分之前做第二部分,所以我首先想要一种复制对象的方法,所以我可以保存第二部分的所有元素 . 这是我试过的代码,但是对于一些共鸣,我没有得到它内部的节点 .
HtmlDocument HTMLdoc = new HtmlDocument();
HTMLdoc.LoadHtml(sFetch);
//duplicate document node
var webPage = HtmlNode.CreateNode("<html></html>");
webPage.CopyFrom(HTMLdoc.DocumentNode,true);
我想到的另一种方法是反转选择我要移除的所有元素的xpath . 所以我将能够选择它们,而无需从对象中删除元素 . 但我无法弄清楚如何使用XPath“not()”函数来反转我的查询 . 这是我的XPath查询:
"//script | //style | //iframe | //select | //textarea | //comment() | //a[@href]"
谢谢你的时间和帮助:)
2 回答
这是XPath表达式的反转版本:
这将选择除脚本,样式等之外的节点 .
我正在做类似的事情 . 我必须获取此信息,然后将其转换为XML . 这是你需要的:
如果您要进一步处理此问题,则需要继续引用每个HtmlNode .