调用AngleSharp解析html源码

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

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

厉害了

登录后方可回帖

登 录
信息栏
公告:
个人博客
专注分享
谢谢合作!

本站域名:HtmLayout.Cn
aardio可以快速开发上位机,本站主要记录了学习过程中遇到的问题和解决办法及aardio代码分享

这里主要专注于aardio学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.

Aardio 官方站:Aardio官方
Aardio最新功能:Aardio官方更新日志
本 站 主 站:Stm32cube中文网
Sciter中文在线文档Sciter在线学习文档
空间赞助:才仁机械
打赏本站
Loading...