HtmlAgilityPack文件加载

时间:2014-05-13 09:34:23

标签: c# html-agility-pack

当我尝试从文件系统加载文件时,我遇到了问题。问题是,在某些HTML控件的值上,我的签名是“<”内部跨度值

HtmlDocument doc = new HtmlDocument();
doc.OptionReadEncoding = true;

//StreamReader str = new StreamReader(fileName, Encoding.UTF8);
StreamReader str = new StreamReader(@"E:\HTMLS\OEL\1030,1.html",Encoding.UTF8,true);

doc.Load(str.BaseStream, Encoding.ASCII);
//string streamString = str.ReadToEnd().
str.Close();
//all nodes

doc.DocumentNode.Descendants().Where(x => x.Name == "#text" && (x.InnerText == "\r\n\t" || x.InnerText == "\r\n" || x.InnerText == "\r\n\t\t")).ToList().ForEach(x => x.Remove());
List<HtmlNode> listHtmlNode = doc.DocumentNode.Descendants("table").ToList();

1 个答案:

答案 0 :(得分:1)

您不应将<等符号作为HTML中的内容。将它们放在html中会使html无效,并导致HTMLAgility包无法正常执行。

如果您需要在HTML中使用它们,则需要对它们进行编码。 <变为%lt;,请参阅此处http://www.w3schools.com/html/html_entities.asp