当前位置: 首页 > 编程语言 > C#

如何在C#中以最快的方式获取HTMLDocument的所有文本节点?分享

时间:2023-04-11 11:30:09 C#

C#中如何以最快的方式检索HTMLDocument的所有文本节点?我需要对HTMLDocument的所有文本节点执行一些逻辑。这就是我目前的做法:HTMLDocumentpageContent=(HTMLDocument)_webBrowser2.Document;IHTMLElementCollectionmyCol=pageContent.all;foreach(IHTMLDOMNodemyElementinmyCol){foreach(IHTMLDOMNodechildin(IHTMLDOMChildrenCollection)myElement.childNodes){if(child.nodeType==3){//用文本节点做点什么!}}}由于myCol中的一些元素也有自己在myCol中的子元素,所以我不止一次地访问了一些节点!必须有更好的方法来做到这一点?最好在递归函数中迭代子节点(直接后代),从顶层开始,类似于:HtmlElementCollectioncollection=pageContent.GetElementsByTagName("HTML");IHTMLDOMNodehtmlNode=(IHTMLDOMNode)collection[0];ProcessChildNodes(htmlNode);privatevoidProcessChildNodes(IHTMLDOMNodenode){foreach(IHTMLDOMNodechildNodeinnode.childNodes){if(childNode.nodeType==3){//...}ProcessChildNodes(childNode);您可以使用HTMLAgilityPack中的XPath一次访问所有文本节点。我认为它会如图所示,但还没有尝试过。以上就是C#学习教程:如何在C#中以最快的方式获取HTMLDocument的所有文本节点?所有分享的内容,如果对你有用,需要了解更多C#学习教程,希望大家多多关注——使用HtmlAgilityPack;HtmlDocumenthtmlDoc=newHtmlDocument();//filePath是包含htmlhtmlDoc的文件的路径.Load(filePath);HtmlNodeCollectioncoll=htmlDoc.DocumentNode.SelectNodes("//text()");foreach(HTMLNodenodeincoll){//在这里为一个文本节点做工作}本文来自网络合集,不代表侵权,请点击右边联系管理员删除。如需转载请注明出处:

最新推荐
猜你喜欢