【发布时间】:2014-05-04 15:24:05
【问题描述】:
我有一个基本的 ASPX 页面:
<%@ Page Language="C#" MasterPageFile="SomeMasterPage.master" AutoEventWireup="true" %>
<h1>My ASPX Page</h1>
<div class="content">
<p>Some content goes here.</p>
</div>
使用HtmlAgilityPack,我想从ASPX 页面获取第一行并访问其属性(Language、MasterPageFile 和AutoEventWireup)。但是,当我尝试使用 HtmlAgilityPack 加载页面的 HTML 时,第一行作为文本节点返回。
public static class Program
{
public static void Main(string[] args)
{
var parser = new Parser();
parser.Parse("some-page.aspx");
}
}
public class Parser
{
public void Parse(string path)
{
HtmlDocument document = new HtmlDocument();
document.Load(path);
HtmlNode childNode = document.DocumentNode.ChildNodes[0];
// childNode is an HtmlTextNode
}
}
我意识到开头的 ASPX 行实际上不是 HTML,这很可能是 HtmlAgilityPack 将其作为文本节点返回的原因。现在,我可以使用这个返回的文本来手动解析属性中的值,但我宁愿将其视为标准的 HTML 节点。有什么方法可以教 HtmlAgilityPack 将顶行视为 HTML 节点?
【问题讨论】:
标签: c# asp.net parsing html-agility-pack