与HTML敏捷包解析HTML
问题描述:
我想收集所有的标签从这个div,但不知道如何使用XPath方法与HTML敏捷包解析HTML
<div class="biz_info">
<h3><a href="/profil/78122/s%C3%B8rby-rehab/">Sørby Rehab</a></h3>
<table class="string_14">
<tbody>
<tr>
<td>Postadr.:</td>
<td class="tab_space">Rognerudveien 8 B, 0681 Oslo</td>
</tr>
<tr>
<td>Telefon:</td>
<td class="tab_space">928 70 700</td>
</tr>
<tr>
<td>Nettside:</td>
<td class="tab_space"><a href="http://www.sorby-rehab.no" target="_blank">www.sorby-rehab.no</a></td>
</tr>
</tbody>
</table>
</div>
今天我的代码看起来像这样的最佳方式做到这一点(但很不好):
HtmlDocument doc = new HtmlDocument();
doc.Load(new StringReader(result));
HtmlNode root = doc.DocumentNode;
List<string> anchorTags = new List<string>();
foreach (HtmlNode link in root.SelectNodes("//@class=biz_info"))
{
string att = link.OuterHtml;
anchorTags.Add(att);
}
是xpath专业人士可以帮助我吗?
答
HtmlDocument html = new HtmlDocument();
html.Load(new StringReader(result));
var anchorTags = html.DocumentNode.SelectNodes("//div[@class='biz_info']//a")
.Select(a => a.OuterHtml)
.ToList();
这将给你锚定标记html的列表。如果你只需要网址:
urls = html.DocumentNode.SelectNodes("//div[@class='biz_info']//a[@href!='']")
.Select(a => a.Attributes["href"].Value)
.ToList();
我该怎么做,如果我想循环了这一点?因为“biz-info”大约有20件? :) – Max 2013-03-19 14:19:53
@Mrmaxen使用循环,例如与* foreach *:'foreach(字符串a在锚标签){...}' – 2013-03-19 14:22:31
@lazyberzosky,现在,我试图建立你的模型,但它不工作。我想要的目标是获得所有biz_info和基因rara他们到XML文件。如果狗屎能够帮助我一点,那会很好。这里的代码:http://pastebin.com/sS8UVts8 – Max 2013-03-19 14:32:51