我有这个:
<div class="ResultItem">
<table border="0" cellpadding="0" cellspacing="0" style="top: 0; left: 0; width: 100%;">
<tr>
<td class="result">
<a href="http://msdn.microsoft.com/en-us/library/system.windows.uielement.aspx" onclick="trackClick(this, '117', 'http\x3a\x2f\x2fmsdn.microsoft.com\x2fen-us\x2flibrary\x2fsystem.windows.uielement.aspx', '1');"><b>UIElement</b> Class (System.Windows)</a>
<div class="ResultDescription"><b>UIElement</b> is a base class for WPF core level implementations building on Windows Presentation Foundation (WPF) elements and basic presentation characteristics.</div>
<div class="ResultUrl">msdn.microsoft.com/en-us/library/sy<wbr><a class="wbr"></a>stem.windows.<b>uielement</b>.aspx</div>
</td>
</tr>
</table>
</div>
我想从<a>(grab this string)</a>
和<div class="ResultDescription">(grab data</div>
中提取数据。我该怎么做?
答案 0 :(得分:3)
长期最好的选择是使用专用的HTML解析库而不是自定义字符串操作。有一个名为HtmlAgilityPack的HAPPhone的主干版本可以在Windows Phone 7上运行。您必须从codeplex手动下载它,但它仍然需要自己编写它。
答案 1 :(得分:1)
如果您的目标是阅读MSDN网站,那么他们就拥有了实际的Web服务API
http://services.msdn.microsoft.com/ContentServices/ContentService.asmx
因此不需要屏幕抓取。只需添加对该URL的引用即可。
答案 2 :(得分:0)
如果,(且仅当!),您的html是有效的XHTML,您可以使用任何XML解析器来获得您想要的内容。
答案 3 :(得分:0)
重申BrokenGlass提到的内容,对What is the best way to parse html in C#?的压倒性回答是使用像HtmlAgilityPack这样的库,对于手机来说这意味着像HAPPphone这样的东西
答案 4 :(得分:0)
如果您的解析任务仅适用于小长度字符串,那么您可以使用javascript解析带有'html'内容的字符串。 以下代码行将使用正则表达式替换html标记并提供普通文本。
//Javascript
var normal_text = html_string.replace(/(<.*?>)/ig,"");