C# 使用HtmlAgilityPack解析html文件
我有几个Html文件存储在同一目录(TestReport1.Html、TestReport2.Html…)中,内容如下:C# 使用HtmlAgilityPack解析html文件,c#,html,html-agility-pack,C#,Html,Html Agility Pack,我有几个Html文件存储在同一目录(TestReport1.Html、TestReport2.Html…)中,内容如下: <!DOCTYPE html> <html> <body> <section class='summary'> <ul class='resultSummary'> <li class='Passed'> <div clas
<!DOCTYPE html>
<html>
<body>
<section class='summary'>
<ul class='resultSummary'>
<li class='Passed'>
<div class='summaryLine'>
<div class='summaryLabel'>Passed</div>
<span class='summaryCount'>199</span>
</div>
<input type='checkbox' class='cbx_toggle' unchecked/>
</li>
<li class='Inconclusive'>
<div class='summaryLine'>
<div class='summaryLabel'>Inconclusive</div>
<span class='summaryCount'>10</span>
</div>
<input type='checkbox' class='cbx_toggle' unchecked/>
</li>
<li class='NotImplemented'>
<div class='summaryLine'>
<div class='summaryLabel'>Not Implemented</div>
<span class='summaryCount'>5</span>
</div>
<input type='checkbox' class='cbx_toggle' unchecked/>
</li>
<li class='Failed'>
<div class='summaryLine'>
<div class='summaryLabel'>Failed</div>
<span class='summaryCount'>12</span>
</div>
<input type='checkbox' class='cbx_toggle' checked/>
</li>
<li id='summaryChart'</li>
</ul>
</section>
</body>
</html>
-
通过
199
-
无定论的
10
-
未实施
5.
-
失败
12
要获取该值,可以使用XPath。例如:
"//*[@class='Inconclusive']/div/span"
C#HtmlAgilityPack
var html = new HtmlDocument();
html.LoadHtml(<html code>);
var xpath = "//*[@class='Inconclusive']/div/span";
var parse = html.DocumentNode.SelectSingleNode(xpath).InnerText;
var html=new HtmlDocument();
html.LoadHtml();
var xpath=“//*[@class='Inconclusive']/div/span”;
var parse=html.DocumentNode.SelectSingleNode(xpath).InnerText;
如何获取XPath:
//说明:HAP-加载(从文件)
//网站:https://html-agility-pack.net/
//运行:https://dotnetfiddle.net/EsvZyg
//@nuget:HtmlAgilityPack
使用制度;
使用System.Xml;
使用HtmlAgilityPack;
公共课程
{
公共静态void Main()
{
SaveHtmlFile();
#区域示例
var path=@“test.html”;
var doc=新的HtmlDocument();
单据加载(路径);
var node=doc.DocumentNode.SelectSingleNode(//body);
Console.WriteLine(node.OuterHtml);
#端区
}
私有静态void SaveHtmlFile()
{
变量html=
@"
这是粗体标题
这一段在下面划线
这是斜体标题
";
var htmlDoc=新的HtmlDocument();
htmlDoc.LoadHtml(html);
htmlDoc.Save(“test.html”);
}
}
您的问题似乎太宽泛了。程序的哪一部分(枚举html文件、解析html、从节点读取值等)有问题?另外,您的问题应该包括到目前为止您已经编写的代码的相关部分(请参阅)-不要期望我们为您编写整个程序。
// Description: HAP - Load (From File)
// Website: https://html-agility-pack.net/
// Run: https://dotnetfiddle.net/EsvZyg
// @nuget: HtmlAgilityPack
using System;
using System.Xml;
using HtmlAgilityPack;
public class Program
{
public static void Main()
{
SaveHtmlFile();
#region example
var path = @"test.html";
var doc = new HtmlDocument();
doc.Load(path);
var node = doc.DocumentNode.SelectSingleNode("//body");
Console.WriteLine(node.OuterHtml);
#endregion
}
private static void SaveHtmlFile()
{
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);
htmlDoc.Save("test.html");
}
}