繁体   English   中英

Linq解析HTML字符串

[英]Linq parse html string

我想解析一个html页面并从中获取一个特定的值。 如何使用Linq或C#中的字符串解析来实现此目的?

-------------更多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。

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

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

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

并查看此快速Google搜索页面 ,了解如何在C#中使用正则表达式。

尝试解析HTML时要小心。

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

相反,这里出现堆栈溢出的人建议使用http://htmlagilitypack.codeplex.com/ ,据说这在解析html方面做得很好。 然后,您可以使用xpath查询文档中的各种内容。

您可以通过以下方式在C#中尝试使用正则表达式:

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

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

或者,您可以使用HTML解析器(例如“ jericho”)并浏览HTML标记以获取价值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM