我的XSLT中有一个参数,通常是我应用模板的一组合适的节点。
<apply-templates select="$conferences" />
但是,有时出现问题,它会以字符串形式出现。在这种情况下,我只想跳过应用模板。但检查这个的正确方法是什么?我可以检查它当然不是一串,但我如何检查参数是否......“可以”? p>
<if test=" ? ">
<apply-templates select="$conferences" />
</if>
答案 0 :(得分:3)
由于您使用的是XSLT 2.0,因此只需执行
即可<xsl:if test="$conferences instance of node()*">
答案 1 :(得分:1)
你可以这样做:
<apply-templates select="$conferences/*" />
只有在其中包含XML时才适用。字符串将不会被应用。
如果您想提前做好准备,请执行以下操作:
<xsl:choose>
<xsl:when test="count($conferences/*) > 0"> <!-- it is XML -->
<xsl:apply-templates select="$conferences/*" />
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="$conferences" /> <!-- it is not XML -->
</xsl:otherwise>
</xsl:choose>