调用AngleSharp解析html源码

By admin at 2022-05-27 • 0人收藏 • 797人看过

AngleSharp 是一个 .NET 库,它使您能够解析基于尖括号的超文本,例如 HTML、SVG 和 MathML。该库还支持未经验证的 XML。AngleSharp 的一个重要方面是 CSS 也可以被解析。包含的解析器建立在官方 W3C 规范之上。这会为给定的源代码生成一个完美可移植的 HTML5 DOM 表示,并确保与常青浏览器中的结果兼容。还有标准的 DOM 功能,例如querySelectorquerySelectorAll适用于树遍历。

AngleSharp 是完全按照标准来的,可以玩 css selector,想玩 Xpath 也可以, 然而上一篇文章里htmlagilitypack 就只能 xpath 了.


官方网站: https://anglesharp.github.io


image.png

import console; 
import dotNet;

var dll = dotNet.load("\AngleSharp.dll");
var AngleSharpParser = dll.import("AngleSharp.Html.Parser")
var parser = AngleSharpParser.HtmlParser();

var document = parser.ParseDocument("<h1>Some example source</h1><p>This is a paragraph element");
console.log("输出整个文档的html:");
console.log( document.DocumentElement.OuterHtml );
//创建⼀个p元素
var p = document.CreateElement("p");
//给p元素添加⽂本
p.TextContent = "This is another paragraph.";
console.log( "在body中插入一个P元素" );
document.Body.AppendChild(p);
console.log( document.DocumentElement.OuterHtml )

console.pause(true);


测试工程下载:

AngleSharp.zip


2 个回复 | 最后更新于 2022-05-27
2022-05-27   #1

利用Css Selector获取指定元素:

image.png

import console; 
import dotNet;

var dll = dotNet.load("\AngleSharp.dll");
var AngleSharpParser = dll.import("AngleSharp.Html.Parser")
var parser = AngleSharpParser.HtmlParser();

var document = parser.ParseDocument("<ul><li>First item<li>Second item<li class='blue'>Third item!<li class='blue red'>Last item!</ul>");
//选取class='blue'的li集合
var blueListItemsCssSelector = document.QuerySelectorAll("li.blue");
//集合长度
console.log( blueListItemsCssSelector.Length );
//遍历
for(i=1;blueListItemsCssSelector.Length;1){
	//console.log( blueListItemsCssSelector[1].OuterHtml )
	//console.log( blueListItemsCssSelector[1].InnerHtml )
	console.log( blueListItemsCssSelector[i].TextContent );
}

console.pause(true);


单选元素:

var blueLi = document.QuerySelector("li.blue");
console.log( blueLi.TextContent );


其中通过DOM选择器得到的对象有如下可用方法:

1653662450142169.png

029.png


2022-05-27   #2

厉害了

登录后方可回帖

登 录
信息栏
 私人小站

本站域名

ChengXu.XYZ

投诉联系:  popdes@126.com



快速上位机开发学习,本站主要记录了学习过程中遇到的问题和解决办法及上位机代码分享

这里主要专注于学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.
如果侵权,联系 Popdes@126.com

友情链接
Aardio官方
Aardio资源网


才仁机械


网站地图SiteMap

Loading...