1

我想解析一个 html 页面并从中获取特定值。如何在 C# 中使用 Linq 或字符串解析来做到这一点?

------------- 更多 HTML ----------

     <span class="date">
        04.09.2012
    </span>
    <table cellspacing="0"><tr><th scope="row">1 EUR</th><td><span>**4,4907**</span></td><td><span class="rise">+0,0009</span></td><td><span class="rise">+0,02%</span></td></tr><tr><th scope="row">1 USD</th><td><span>3,5635</span></td><td><span class="fall">-0,0093</span></td><td><span class="fall">-0,26%</span></td></tr></table>

------------- 更多 HTML ----------

我有兴趣以粗体显示值 4,4907!

知道如何实现这一目标吗?

谢谢!

4

3 回答 3

4

如果您只需要那一点,请使用正则表达式。(但不要使用正则表达式来解析更复杂的 HTML。

<td><span>4,4907</span></td>

将最方便地由正则表达式匹配

<td><span>([0-9,]+)</span></td> 

例如,请参阅这个关于如何在 C# 中使用正则表达式的快速谷歌页面。

于 2012-09-05T07:59:30.900 回答
1

尝试解析 HTML 时要小心。

我认为显而易见的方法是将其加载到 XDocument(作为 XML)中,但由于 HTML 通常不明确或包含语法错误,因此这注定会失败。

Stack Overflow 上的人们建议使用 http://htmlagilitypack.codeplex.com/,据说它可以很好地解析 html。然后你可以使用 xpath 来查询你的文档中的各种内容。

于 2012-09-05T08:02:59.947 回答
0

您可以通过这种方式在 C# 中尝试正则表达式:

http://www.c-sharpcorner.com/UploadFile/prasad_1/RegExpPSD12062005021717AM/RegExpPSD.aspx

查找“<span>* ”和“ *</span>”之间的字符串。

或者,您可以使用“jericho”之类的 HTML 解析器并浏览 HTML 标记以达到您的价值。

于 2012-09-05T07:59:33.940 回答