2015-07-10 170 views
0

我有一個包含類似於以下節點的SVG文檔節點:的XPath - 獲取,只有具有特定屬性的孩子

<item> 
    <g> 
     <path fill="#FFFFFF" ... ></path> 
     <path fill="none" ... ></path> 
     <ellipse fill="none" ... ></path> 
    </g> 
    <g> 
     <path fill="none" ... ></path> 
     <path fill="none" ... ></path> 
     <ellipse fill="none" ... ></path> 
    </g> 
    <g> 
     <path fill="#FFFFFF" ... ></path> 
     <path fill="#FFFFFF" ... ></path> 
     <ellipse fill="#FFFFFF" ... ></path> 
    </g> 
</item> 

我試圖做的僅僅是選擇僅包含<g>節點具有fill="none"屬性的子項。所以我試圖找到一個XPath,只匹配我的示例中的第二個<g>節點。

我已經完成了我的谷歌搜索和堆棧溢出搜索的份額,似乎沒有任何工作。

我認爲最接近的工作應該是給我一個錯誤,說它不是Google Chrome使用$x()幫手的開發人員工具中的有效XPath表達式。

*[name()="g" and descendants::*[@fill="none"]]

任何幫助表示讚賞

感謝

回答

3

嘗試:

*[ name()="g" 
    and descendant::*[@fill="none"] 
    and count(descendant::*[@fill="none"]) = count(descendant::*) 
] 
+0

這仍然選擇''包含節點'補= 「無」'以及'補= 「#FFFFFF」'。 – marcaddeo

+0

我的不好,我誤讀了。看到我更新的XPath –

+0

這就是訣竅!謝謝! – marcaddeo

相關問題