2016-01-25 25 views
0

我想分析外部文檔中的元標記(特別是文章:標記),其中的網址由用戶傳遞給我。處理元標記,當我無法預先知道有多少

我也考慮過多種可能的來源並沒有在他們如何使用標籤沒有一致性:

  1. 一些不使用的標籤
  2. 有些人使用多個標籤
  3. 一些使用用逗號分隔的關鍵字/短語
  4. 有的用一個標籤與描述型進單標籤

我需要什麼do是獲取值(無論跨多個標記,逗號分隔或描述類型)爲單個字符串

我使用htmlAgility包,並能夠獲得其他值(當我知道只有一個或沒有)與下面的代碼:

//get html 
HtmlDocument htmlDoc = new HtmlDocument(); 
htmlDoc.LoadHtml(sourceHtml); 
var artAuthor = htmlDoc.DocumentNode.SelectSingleNode("//meta[@property='article:author']"); 
try 
{ 
    strARTAuthor = artAuthor.Attributes["content"].Value; 
} 
catch 
{ 
    strARTAuthor = ""; 
} 

我懷疑我需要一個foreach的地方,但我不確定如何構建這個。

把東西沿着

foreach(htmlDoc.DocumentNode.SelectSingleNode("//meta[@property='article:tag']") in htmldoc) 

線並不在所有的工作。

回答

1

我不知道到底是各類meta標籤的你已經發現,但至少,你需要使用SelectNodes()更換SelectSingleNode()使foreach循環工作:

var metas = htmlDoc.DocumentNode.SelectNodes("//meta[@property='article:tag']"); 
foreach(HtmlNode meta in metas) 
{ 
    ..... 
} 
+0

是的,這似乎是答案。謝謝 – Dave

相關問題