2013-08-30 39 views
0

所以我在服務器端使用Htmlagilitypack來解析C#中的html。 這裏有一個問題.. 我有2個div元素如何通過htmlagilitypack中的屬性在關鍵部分/ div選擇

<div> 
<a data-clear="movies-something"></a> 
<p data-clear="movies-something"></p> 
</div> 

<div> 
<a data-clear="music-something"></a> 
<p data-clear="music-something"></p> 
</div> 

我公司通過了div元素循環,並希望找到該特定數據clear屬性。問題是,當我使用

var cols = fdm.SelectNodes("//@data-clear"); 

在第二種情況下我發現的4而不是2列..

瞭如何在目前唯一通過DIV

+0

它不是重複,我想我的特定標籤 –

+0

內列表這是一個重複的。不支持返回屬性節點的XPATH表達式(因爲Html Agility Pack簡單並沒有將屬性定義爲一個節點,與XML等價物不同) –

+0

所以重複的鏈接有這樣的問題:我試圖從html中檢索特定的圖像文件,我的問題是:我不希望具體的圖像,我想在這種情況下,從細節部分Div .. –

回答

0

循環選擇更改您的XPATH表達式選擇的節點如下

var cols = fdm.SelectNodes("//div[1]//@data-clear"); 
+0

你是100%正確的XPATH一般,但Html敏捷包XPATH實現不支持選擇屬性。檢查我評論中的鏈接。 –

+0

它在2009年。現在HtmlAgilityPack支持按屬性選擇。 http://htmlagilitypack.codeplex.com/wikipage?title=示例 – MikkaRin

+0

不可以。你用這個'/ @ att'將這種表達式'/ element [@att]'混淆了。後者從未得到支持。 –