摘要:本文主要向大家介绍了C#编程中类似jquery一样解析HTML节点的操作教程,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助。
本文主要向大家介绍了C#编程中类似jquery一样解析HTML节点的操作教程,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助。
Html Agility Pack是一个开源的解析HTML元素的类库。可以在C#中直接操作,类似于XML操作方法。操作还是比较好理解的。
1、在NuGet中安装: PM>Install-Package HtmlAgilityPack -Version 1.8.2
这里可以有较多的版本选择。
在项目中HtmlAgilityPack.dll
2、下面就直接看代码理解
// 根据路径加载
var path = @"test.html";
var doc = new HtmlDocument();
doc.Load(path);
var node = doc.DocumentNode.SelectSingleNode("//body");
Console.WriteLine(node.OuterHtml);
// 根据页面字符串解析
var html = @"<!DOCTYPE html>
<html>
<body>
<h1>This is <b>bold</b> heading</h1>
<p>This is <u>underlined</u> paragraph</p>
<h2>This is <i>italic</i> heading</h2>
</body>
</html> ";
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(html);
var htmlBody = htmlDoc.DocumentNode.SelectSingleNode("//body");
Console.WriteLine(htmlBody.OuterHtml);
// 直接加载网页内容解析
var html = @"https://html-agility-pack.net/";
HtmlWeb web = new HtmlWeb();
var htmlDoc = web.Load(html);
var node = htmlDoc.DocumentNode.SelectSingleNode("//head/title");
Console.WriteLine("Node Name: " + node.Name + "\n" + node.OuterHtml);
3、接下来就是要对节点进行操作,获取节点、追加节点、删除节点
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(html);
// 获取TD下input标签SelectNodes
var htmlNodes = htmlDoc.DocumentNode.SelectNodes("//td/input");
// 获取第一个匹配的节点SelectSingleNode
string name = htmlDoc.DocumentNode
.SelectSingleNode("//td/input")
.Attributes["value"].Value;
// 根据ID获取节点
var htmlSelect = htmlDoc.GetElementbyId("ID");
// 创建节点信息
HtmlNode h2Node = HtmlNode.CreateNode("<h2> This is h2 heading</h2>");
// 追加节点在末尾
htmlSelect.AppendChild(h2Node);
// 追加节点在起始位置
htmlSelect.PrependChild(h2Node);
// 下面是集合节点集合
var htmlBody = htmlDoc.DocumentNode.SelectSingleNode("//body");
HtmlNode h2Node = HtmlNode.CreateNode("<h2> This is h2 heading</h2>");
HtmlNode pNode1 = HtmlNode.CreateNode("<p> This is appended paragraph 1</p>");
HtmlNode pNode2 = HtmlNode.CreateNode("<p> This is appended paragraph 2</p>");
HtmlNodeCollection children = new HtmlNodeCollection(htmlBody);
children.Add(h2Node);
children.Add(pNode1);
children.Add(pNode2);
htmlBody.AppendChildren(children);
// 移除节点
var htmlBody = htmlDoc.DocumentNode.SelectSingleNode("//body");
HtmlNode node = htmlBody.ChildNodes[1];
node.Remove(); // 或者 node.RemoveAll();
// htmlBody.RemoveAllChildren();
// 最后上一个设置属性的例子
var h1Node = htmlDoc.DocumentNode.SelectSingleNode("//h1");
h1Node.Attributes.Append("style");
h1Node.SetAttributeValue("style", "color:blue");
相信这些操作方式大家还是比较熟悉的,下载下dll便可以查看到里面的各个方法,还是比较好理解的,是不是很像jquery的操作。
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C#.NET频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号