加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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不会对不存在的子元素执行任何操作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读