2013-04-05 47 views
0

是否有可能測試某個XML而不是某些內容和屬性屬於另一個XML節點?特定子XML的XSLT文本

例如:

<a> 
    <node/> 
    <node> 
     <node attr="attr1"> 
     <d>test</d> 
     </node> 
    </node> 
    <node> 
     <c attr="attr2"> 
     <d>test</d> 
     </c> 
    </node> 
</a> 

在這裏,我需要選擇只<node>節點那裏的孩子含量也正是

<node> 
    <c attr="attr1"> 
     <d>test</d> 
    </c> 
</node> 
+0

你需要測試2節點值例如:測試測試並獲得唯一一個? – Octonaut 2013-04-05 08:40:58

+0

我需要測試所有節點,並只獲取具有確切預定義內容的節點。 – Egor4eg 2013-04-05 09:23:02

+0

'// d [。='test'] /../../ node'會給你確切的''你可以把這個'//d[.=''''''''等於true 'xsl:if'條件來實現你的需求。我希望我已經正確理解你的要求 – Octonaut 2013-04-05 10:36:49

回答

1
node[c[@attr = 'attr1'][d = 'test']] 

會選擇包含至少的內容節點,如果你想只有那個內容,例如

node[count(@*) = 0][count(node()) = 1] 
    [c[count(@*) = 1][count(node()) = 1][@attr = 'attr1'][d[. = 'test'][not(*)]] 

(這裏假設你的樣式表有<xsl:strip-space elements="*"/>所以唯一的空白文本節點可以忽略不計)