2015-11-02 126 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:你可以使用我的第二種方法 –