我有一个问题:
我有一个像这样的xml文件:
<xsl:for-each select="/tag1/tag2>
<xsl:choose>
<xsl:when test="??">
I HAVE A TAG3
</xsl:when>
<xsl:otherwise>
I DONT HAVE A TAG3
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
如果tag2存在于tag2下打印出一件事,我想做以下操作,否则说没有找到标签。 到目前为止我已经尝试了这个:
Project
我想知道该怎么做我有'??'
最诚挚的问候, Egert
答案 0 :(得分:0)
如果您只想测试元素是否存在,那么只需使用元素名称
即可<xsl:for-each select="/tag1/tag2>
<xsl:choose>
<xsl:when test="tag3">
I HAVE A TAG3
</xsl:when>
<xsl:otherwise>
I DONT HAVE A TAG3
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
或者,使用模板化方法
<xsl:template match="/">
<xsl:apply-templates select="tag1/tag2" />
</xsl:template>
<xsl:template match="tag2[tag3]">
I have tag 3
</xsl:template>
<xsl:template match="tag2">
I do not have tag 3
</xsl:template>
在这种情况下,匹配tag2
的额外条件的模板优先级高于另一个条件。这意味着第二个模板只会匹配tag2
下不存在tag3
的元素。