2015-11-02 127 views
2

这是我的HTML代码中选择第一个标签。如何选择每个div标签C#htmlagilitypack在嵌套元素

<div class="test"> 
    <a></a> 
    <a></a> 
</div> 
<div class="test"> 
    <a></a> 
    <a></a> 
</div> 
<div class="test"> 
    <a></a> 
    <a></a> 
</div> 

我一直在使用一个斜杠尝试过之后,第一个链接(一)://div[@class="test"]/a但它同时选择

+0

H你在使用'// div [@ class =“test”]/a'吗? –

+0

从XPath的取景器 –

+0

看到我更新的答案。 –

回答

4

像这样(使用指数):

var elements = something.SelectNodes("//div[@class=\"test\"]/a[1]"); 
+0

它只选择第一个div,但我有名单,并希望从每个DIV –

+0

可以先选择一个标签的孩子,等一下。 –

+0

我已经尝试过这样的事情,但没有工作:( –

1
string html = @"<div class=""test""> 
    <a></a> 
    <a></a> 
    </div>"); 

var firstAnchor = doc.DocumentNode 
    .SelectSingleNode("//div[contains(@class,'test')]") 
    .SelectSingleNode("//a"); 

或与此语法:

var firstDiv = doc.DocumentNode.Descendants("div") 
    .Where(n => n.GetAttributeValue("class", "").Equals("test", StringComparison.InvariantCultureIgnoreCase)) 
    .FirstOrDefault(); 
if (firstDiv != null) 
{ 
    var firstAnchor = firstDiv.Descendants("a").FirstOrDefault(); 
} 
+0

我已经编辑我的问题,请再次检查 –

+0

@NikaJavakhishvili:你可以使用我的第二种方法 –