使用Html Agility Pack解析HTML文档

时间:2013-07-10 15:52:27

标签: c# html-agility-pack

我正在开展一个项目,我必须从网站上提取数据&存储在访问中。 我能够从网站上读取数据&将它存储在html doc中,但现在我要解析html doc&存储在访问中。 以下是html文件的内容

<HTML><HEAD><TITLE>NCEDC_Search_Results</TITLE></HEAD><BODY>Your search parameters are:

<ul>
<li>start_time=2002/01/01,00:00:00
<li>end_time=2037/01/01,00:00:00
<li>minimum_magnitude=3.0
<li>maximum_magnitude=10
<li>etype=E
<li>rflag=A,F,H,I
<li>system=selected
<li>format=ncread
</ul>
<PRE>
Date       Time             Lat       Lon  Depth   Mag Magt  Nst Gap  Clo  RMS  SRC   Event ID
----------------------------------------------------------------------------------------------
2002/01/10 00:44:51.53  40.4415 -126.0167  25.37  3.92   Md   56 269  147 0.29 NCSN   21208454 
2002/01/12 04:41:46.93  36.7690 -121.4812   7.74  3.06   Md   54  35    5 0.09 NCSN   21208721 


</PRE>
</BODY></HTML>

我想要<pre></pre>标签之间的内容。 列名称在上面的html文档中给出。

如何在C#中使用Html Agility Pack实现这一目标? 我试过这段代码,请问我该如何进一步处理?

string txt=null;
        HtmlDocument doc = new HtmlDocument();
        doc.LoadHtml("E://text.html");
        HtmlNode node = doc.DocumentNode;
        HtmlNodeCollection pre = node.SelectNodes("//pre"); 
        //var prenodes = doc.DocumentNode.SelectNodes("//pre");
        if (pre != null)
        {




        }

        Console.ReadKey();


    }

1 个答案:

答案 0 :(得分:1)

您使用了错误的方法加载HTML文件,这就是以下SelectNodes XPath查询无效的原因。

doc.LoadHtml(string html)期待一个包含完整HTML文档的字符串,而不是文档文件的路径。

请改为尝试:

doc.Load("E://text.html");