[英]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.