c#怎么用xpath解析html

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#怎么用xpath解析html相关的知识,希望对你有一定的参考价值。

HOT SUMMER
每天都是不一样,积极的去感受生活
C#Xpath解析htmlDocument的使用方法与递归取得页面所有标签xpath值(附源码)
在学习HTML Xpath之前呢我们先来下载一下Dll文件
下载地址:http://htmlagilitypack.codeplex.com/
大家下载单击如下图片下载就行了
<ignore_js_op>

接下来就是在程序中引用一下,
<ignore_js_op>
然后就可以直接调用 了,大家看看
代码吧
普通浏览复制代码
//htmlDcoument对象用来访问Html文档s
HtmlAgilityPack.HtmlDocument hd = new HtmlAgilityPack.HtmlDocument();
//加载Html文档
hd.LoadHtml(strhtml);
string str = hd.DocumentNode.SelectSingleNode("//*[@id='e_font']").OuterHtml;

这样就可以得到一个标签的HTml代码了
OuterHtml是取包含本身的Html如果是InnerHtml就是取的包含在这个标签之内的所有Html代码了
这点大家要注意了
如果大家想获取Html代码的Xpath路径就是这部分
//*[@id='e_font']
复制代码
这个其实很简单只在大家安装一个Firbug就行了,
看下图片
<ignore_js_op>
大家只要进入选择模式,然后选择你要的内容,然后右键复制一下就行了。
然后放在SelectSingleNode()方法里就OK了
下面我说说几个方法和属性的意思吧、
方法
SelectNodes 获取的是一个集合
SelectSingleNode 获取一个标签
SetAttributeValue 设置标签的属性值例如:SetAttributeValue("name","xpath-89");这说明把name属性的值修改为xpath-89
属性
OuterHtml 是取包含本身的Html
InnerHtml 取的包含在这个标签之内的所有Html代码了
XPath 获取相对应的Xpath值
Attributes 获取一个属性的值例如:Attributes("name")
也可以进行添加属性例如:
普通浏览复制代码
hd.DocumentNode.SelectSingleNode(item.Key).Attributes.Add("xpathid", "xpath_1" );

下面我写了一个递归获取Html页面所有Xpath值的方法大家看一下吧
普通浏览复制代码
//key(Xpath),value(整个节点)
参考技术A 有XMLDocument类或XDocument类专门解析XML类型文件的,其中索引节点的方法就是通过XPath。
MSDN:
https://msdn.microsoft.com/zh-cn/library/system.xml.xmldocument(v=vs.110).aspx
https://msdn.microsoft.com/zh-cn/library/system.xml.linq.xdocument.aspx本回答被提问者采纳

以上是关于c#怎么用xpath解析html的主要内容,如果未能解决你的问题,请参考以下文章

在 C# 中解析 html 的最佳方法是啥? [关闭]

scrapy用xpath解析的内容怎么去除空格

用DOM解析XML ,用xpath快速查询XML节点

Python:数据解析(bs4 / xpath)

Python爬虫系列之 xpath:html解析神器

Python Xpath的解析,应用