我对XSLT不太熟悉,请见谅...
基于此,我想要做的是检查XML中是否存在特定标签。如果存在,我想应用一个模板。如果不存在,则希望添加它(作为空值)。基本上总是强制它出现在最终输出中。我该如何实现这个功能?
我有类似以下的内容...
<xsl:choose>
<xsl:when test="@href">
<xsl:apply-templates select="country" />
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
我认为代码的前面部分有错误。需要在 otherwise
标签中添加一些内容,而且我认为我的 when
部分也有问题。
<xsl:template match="country">
<xsl:if test=". != '' or count(./@*) != 0">
<xsl:copy-of select="."/>
</xsl:if>
</xsl:template>
有人可以帮忙吗?先谢谢了。
编辑:
最终我需要至少一个<country />
标签出现在XML中。但是可能根本就不存在这个标签。如果它不存在,我必须加入它。一个好的例子是:<country>US</country>
<xsl:when test="@href">
是否符合您的要求。这将检查上下文节点是否具有href
属性,而检查“标记”似乎是要检查某些元素节点。在您的otherwise
中,您可能只需要放置一个<country>foo</country>
结果元素。 - Martin Honnen