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

//*[@*[contains(., 'en-us')]]string を含む属性を持つ要素を選択する次の XPath を使用できます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 に答える