如何检查元素是否存在xmlt - > HTML

时间:2016-03-14 13:14:34

标签: html xml xslt

我有一个问题:

我有一个像这样的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

1 个答案:

答案 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的元素。