2017-03-19 60 views
0

我有一個HTML,通過我的webrequest客戶端下載。而從整個HTML我想解析HTML的只有這一部分:HtmlAgiltyPack解析HTML並從span標籤和類名中取出值

<span class="sku"> 
<span class="fb">SKU       :</span>118880101 
</span> 

我使用HTML agilty包來獲取這個值:118880101

而且我已經寫了這樣的事情:

HtmlDocument htmlDoc = new HtmlDocument(); 
htmlDoc.LoadHtml(html); 
return htmlDoc.DocumentNode.SelectNodes("//span[@class='sku']").ElementAt(0).InnerText; 

這將返回我從HTML此值:

SKU       :118880101 

從字面上看就是這樣,水療ces包括...我怎樣才能解決這個邏輯與HTML Agilty包,使我只能拿出這個118880101價值?

有人可以幫我嗎?

編輯:這樣的正則表達式會做的事:

Substring(skuRaw.LastIndexOf(':') + 1); 

這意味着後取「的一切:」登錄串,我收到......但我不知道這是否是安全的使用正則表達式這樣?

+0

已更新我的答案 – CPR43

回答

1

嘗試這個

 HtmlDocument htmlDoc = new HtmlDocument(); 
    htmlDoc.LoadHtml(html); 
    var innerText=htmlDoc.DocumentNode.SelectNodes("//span[@class='sku']") 
          .ElementAt(0).InnerText; 
    return innerText.replace(/\D/g,''); 

,如果你想使用只支持HTML敏捷包試試這個

 var child = htmlDoc.DocumentNode.SelectNodes("//span[@class='fb']") 
          .FirstOrDefault(); 
     if (child != null) 
     { 
      var parent = child.ParentNode; 
      parent.RemoveChild(child); 
      var innerText = parent.InnerText;    
     }