2012-11-02 156 views
1

假設我有一個元素x和我想要做的事,如果該元素不包含 另一個元素y,如:應用元素模板不包含其他元素

<xsl:for-each select="//x"> 
    <xs:if test="expression to check does not contain y"> 

    </xs:if> 
</xsl:for-each> 

回答

0
not(y) 

測試如果一個元素沒有直接的子元素y。

0

更好地利用

<xsl:apply-templates select = "//x[not(y)]"/> 

適用模板,沒有y元素作爲孩子的任何x元素。

通過這種方式,您不需要在選定的執行模塊中指定任何條件邏輯,即匹配模板。

如果「包含」你的意思是「有後代(不是唯一的孩子),那麼上面應指定爲

<xsl:apply-templates select = "//x[not(descendant::y)]"/>