【问题标题】:Linq parse html stringLinq解析html字符串
【发布时间】:2012-08-29 21:45:30
【问题描述】:

我想解析一个 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 以粗体显示!

知道如何实现吗?

谢谢!

【问题讨论】:

  • 是的,使用Html Agility Pack。 Linq 在这里没有业务,字符串解析将是一场噩梦

标签: c# html linq parsing


【解决方案1】:

如果您只需要那一点,请使用正则表达式。 (But don't use a regular expression to parse more complex HTML.)

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

用正则表达式匹配最方便

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

例如,请参阅this quickly Googled page,了解如何在 C# 中使用正则表达式。

【讨论】:

    【解决方案2】:

    您可以这样尝试 C# 中的正则表达式:

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

    查找“ * ”和“ *”之间的字符串。

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

    【讨论】:

      【解决方案3】:

      尝试解析 HTML 时要小心。

      我认为显而易见的方法是将其加载到 XDocument(作为 XML)中,但由于 HTML 经常模棱两可或包含语法错误,这必然会失败。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-05-27
        • 1970-01-01
        • 2011-07-03
        • 2012-05-22
        • 1970-01-01
        • 2011-07-20
        相关资源
        最近更新 更多