如何使用Html Agility Pack獲取包含屬性值中特定字符串的所有HTML標記?

c# html 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獲取它?

一般承認的答案

您可以使用以下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")));


Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因