我的XML结构类似于:
<a>
<b>
<c id="2.3">
</c>
</b>
<d>
<e>
<f>
</f>
</e>
</d>
</a>
我在"f"
的模板中,我希望在when
id
的{{1}}的第一个数字上加上c
,例如:
<xsl:template match="f">
<xsl:choose>
<xsl:when test="substring-before(../../../c/@id, '.') = '2'">
<xsl:text>Successful</xsl:text>
</xsl:when>
</xsl:choose>
</xsl:template>
以上代码不起作用!
任何人都可以建议我使用它吗?
Thnx提前!!
答案 0 :(得分:4)
因为祖先和c之间存在b
。
这应该有效:
substring-before(../../../b/c/@id, '.') = '2'
(假设第二个<b>
应该是</b>
)
答案 1 :(得分:4)
相对路径很好,但有时候更明确是有用的。
<xsl:template match="f">
<xsl:choose>
<xsl:when test="substring-before(ancestor::a[1]/b/c/@id, '.') = '2'">
<xsl:text>Successful</xsl:text>
</xsl:when>
</xsl:choose>
</xsl:template>