与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(); 
+0

我该怎么做,如果我想循环了这一点?因为“biz-info”大约有20件? :) – Max 2013-03-19 14:19:53

+0

@Mrmaxen使用循环,例如与* foreach *:'foreach(字符串a在锚标签){...}' – 2013-03-19 14:22:31

+0

@lazyberzosky,现在,我试图建立你的模型,但它不工作。我想要的目标是获得所有biz_info和基因rara他们到XML文件。如果狗屎能够帮助我一点,那会很好。这里的代码:http://pastebin.com/sS8UVts8 – Max 2013-03-19 14:32:51