xml – XSLT:如果标签存在,应用模板;如果没有,请选择静态值
发布时间:2020-12-16 07:52:59 所属栏目:百科 来源:网络整理
导读:我一般都喜欢XSLT,所以请忍受我 考虑到这一点,我想要做的是检查XML中的某个标签.如果在那里我想应用一个模板.如果没有,我想添加它(作为一个空白值).基本上总是迫使它在最终输出.我该怎么做? 我有这样的东西 xsl:choose xsl:when test="@href" xsl:apply-tem
我一般都喜欢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不会对不存在的子元素执行任何操作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |