1

我正在努力在下面的代码中获取所有在其属性值中包含特定字符串的 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 获得它?

4

1 回答 1

4

您可以使用以下 XPath//*[@*[contains(., 'en-us')]]来选择具有包含 string 的任何属性的任何元素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")));
于 2013-10-30T14:25:11.153 回答