2013-10-30 81 views
1

我就收到包含特定字符串的所有HTML標籤thier屬性值在下面的代碼如何使用Html Agility Pack獲取其屬性值中包含特定字符串的所有HTML標記?

<meta name="DCSext.oo_market" content="en-us"> 
<a href="http://office.microsoft.com/en-us/support/" title="Find help for Word"> 
<a href="http://windows.microsoft.com/en-us/windows-live/microsoft-account-help#microsoft-account=tab1" title="Microsoft Account"> 

我希望所有的標籤含有「EN-US」在其屬性的工作意味着我的輸出應全部歸還上面的html標籤。可以 任何人都請幫助我如何使用HTML Agility Pack獲得它?

+0

什麼你到目前爲止已經試過? –

+0

我已經做了下面的事情,但沒有爲我工作 1)var contentNode = doc.DocumentNode.SelectNodes(「// * [contains(*,'en-us')]」); 2)var contentNode1 =來自doc.DocumentNode.Attributes.ToList()中的節點,其中node.ToString()。Contains(「en-us」)選擇節點; 3)var contentNode2 = doc.DocumentNode.DescendantNodes()。其中​​(x => x.Name.Contains(「en-us」)); – user2025463

+0

元標籤也應該選擇? –

回答

3

您可以使用下面的XPath //*[@*[contains(., 'en-us')]]它選擇其中有一個包含字符串en-us任何屬性的任何元素:

HtmlDocument doc = new HtmlDocument(); 
doc.Load(path_to_html_file);  
var nodes = doc.DocumentNode.SelectNodes("//*[@*[contains(., 'en-us')]]"); 

或LINQ方式:

var nodes = doc.DocumentNode.Descendants() 
       .Where(n => n.Attributes.Any(a => a.Value.Contains("en-us"))); 
+1

謝謝,它的工作 – user2025463

相關問題