在XSLT之前的兄弟姐妹

时间:2013-10-23 13:09:55

标签: xslt

我试图在前面的兄弟姐妹检查的基础上提出一个特定的条件。 我尝试了各种选择但没有任何效果。 这是示例XML

<abc>
 <title>something</title>
 <element>1</element>
 <element>2</element>
 <element>3</element>
 <element>4</element>    
</abc>

我有<element>标签的模板匹配,我想检查它的直接元素是否为<title>做一些additioanl处理,否则做一些其他处理。任何指针都适用。

3 个答案:

答案 0 :(得分:4)

<xsl:template match="element">
    I am boring. <xsl:value-of select="." />
</xsl:template>

<xsl:template match="element[preceding-sibling::*[1][self::title]]">
    I am special. <xsl:value-of select="." />
</xsl:template>

答案 1 :(得分:1)

如果当前上下文是element元素,那么您可以使用

获取其最近的前一个兄弟元素(无论名称如何)
preceding-sibling::*[1]

以检查该元素是否为title,您可以使用

preceding-sibling::*[1][self::title]

答案 2 :(得分:0)

<xsl:template match="element[preceding-sibling::element()[1][self::title]]"/>