我一般都喜欢XSLT,所以请忍受我
考虑到这一点,我想要做的是检查XML中的某个标签.如果在那里我想应用一个模板.如果没有,我想添加它(作为一个空白值).基本上总是迫使它在最终输出.我该怎么做?
我有这样的东西
<xsl:choose> <xsl:when test="@href"> <xsl:apply-templates select="country" /> </xsl:when> <xsl:otherwise> </xsl:otherwise> </xsl:choose>
代码的顶端是我认为我错了.需要的东西在否则的标签和我的部分是错的我想.
<xsl:template match="country"> <xsl:if test=". != '' or count(./@*) != 0"> <xsl:copy-of select="."/> </xsl:if> </xsl:template>
谁能帮忙?先谢谢你.
编辑:
是的,最终我需要至少一个< country />标签在XML中.但是它根本不存在是可能的.如果它不存在,我必须把它放在.一个很好的输入将是< country> US< / country>
在父元素的模板中,预期国家元素将被使用.
<xsl:template match="foo"> <xsl:if test="not(country)"> <country>US</country> </xsl:if> <xsl:apply-templates/> </xsl:template>
而不是foo使用父元素的名称.当然,你也可以做其他的东西,如复制元素,我专注于如果检查.您真的不需要xsl:choose / when /在我的视图中,xsl:if应该足够,因为apply-templates不会对不存在的子元素执行任何操作.