HAP

匿名 (未验证) 提交于 2019-12-02 23:35:02

加载

// 从物理路径的文件加载
var doc = new HtmlDocument();
doc.Load(filePath);//文件路径

从Stream当中加载

var doc = new HtmlDocument();
doc.LoadHtml(html);

// 从网页的Url链接加载

var url = “http://www.cnblogs.com/xuliangxing/”;
var web = new HtmlWeb();
var doc = web.Load(url);

获得节点的方法

var value = doc.DocumentNode
.SelectNodes("//td/input")
.First()
.Attributes[“value”].Value;
/下面的意思是:通过属性id的值,来定位header下的blogTitle节点信息
4 HtmlNode titleNode = doc.DocumentNode.SelectSingleNode("//div[@id=‘header’]/div[@id=‘blogTitle’]");
备注:注意路径里"//“表示从根节点开始查找,两个斜杠‘//’表示查找所有childnodes;一个斜杠’/'表示只查找第一层的childnodes(即不查找grandchild);点斜杠”./"表示从当前结点而不是根结点开始查找。

我们接着上面titleNode节点。

我们还可以不通过属性id去定位,还有通过索引去定位,如下所示,这个效果和上面是等同的
下面的意思是:通过索引定位,div[2]是表示根节点的第二个
HtmlNode titleNode = doc.DocumentNode.SelectSingleNode("//div[2]/div[1]");

HtmlNode单个节点和SelectSingleNode一起使用,
HtmlNodeCollection返回所有的子节点和SelectNodes一起使用

得到结点的文字内容或Html内容

HtmlNode类设计了OuterHtml属性和InnerHtml属性用于获取当前节点的Html源码。两者不同之处是,
OuterHtml属性返回的是包含当前节点的Html代码在内的所有Html代码,而InnerHtml属性返回的是当前节点里面子节点的所有Html代码,
InnerText属性过滤掉了所有的Html标记代码,只返回文本值。

节点的修改

如何去掉外层的html tag只留下文本内容
用remove方法。那你需要先得到这个Html结点,通过remove方法删除掉多余的HTML Tag假设该节点叫Node:Node.ParentNode.RemoveChild(Node,true);

显示获得的节点

可以用一个textbox来接收获得的节点并显示出来。在控制台程序用文本文档保存和显示

如何去掉外层的html tag只留下文本内容

用remove方法。那你需要先得到这个Html结点,通过remove方法删除掉多余的HTML Tag假设该节点叫Node:Node.ParentNode.RemoveChild(Node,true);

文章来源: https://blog.csdn.net/weixin_41798071/article/details/90544426
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!