XML 如果第一个变量为空,则使用另一个变量
Posted
技术标签:
【中文标题】XML 如果第一个变量为空,则使用另一个变量【英文标题】:XML Use another variable if first one is empty 【发布时间】:2021-12-17 22:17:05 【问题描述】:我是 xml 和 xsl 的新手。 我有一个与 xsl:value-of select 相关的问题
有没有办法插入“isnull”类型,这意味着如果一个值为空,它应该隐藏该标签并使用另一个标签?
代码示例:
<ExternalIdentifier>
<!-- Id number -->
<TypeCode>IdentityDocumentId </TypeCode>
<Id>
<xsl:value-of select="idy_nbr"/>
</Id>
</ExternalIdentifier>
我需要将其更改为类似的内容(但如果没有值,它应该隐藏 IdentityDocumentId 标记并改用 Passport Number 标记:
<ExternalIdentifier>
<!-- Id number -->
<TypeCode>IdentityDocumentId </TypeCode>
<Id>
<xsl:value-of select="idy_nbr"/>
</Id>
<TypeCode>Passport Number</TypeCode>
<Id>
<xsl:value-of select="ppo_nbr"/>
</Id>
</ExternalIdentifier>
谢谢。
【问题讨论】:
【参考方案1】:这就是模板规则的用途:
<xsl:apply-templates select="idy_nbr, "pro_nbr"/>
<xsl:template match="idy_nbr">
<TypeCode>IdentityDocumentId</TypeCode>
<Id>
<xsl:value-of select="idy_nbr"/>
</Id>
</xsl:template>
<xsl:template match="pro_nbr">
<TypeCode>Passport Number</TypeCode>
<Id>
<xsl:value-of select="pro_nbr"/>
</Id>
</xsl:template>
【讨论】:
【参考方案2】:我想你想要这样的东西:
<ExternalIdentifier>
<xsl:choose>
<xsl:when test="string(idy_nbr)">
<TypeCode>IdentityDocumentId</TypeCode>
<Id>
<xsl:value-of select="idy_nbr"/>
</Id>
</xsl:when>
<xsl:otherwise>
<TypeCode>Passport Number</TypeCode>
<Id>
<xsl:value-of select="ppo_nbr"/>
</Id>
</xsl:otherwise>
</xsl:choose>
</ExternalIdentifier>
未测试,因为没有提供输入示例。
【讨论】:
以上是关于XML 如果第一个变量为空,则使用另一个变量的主要内容,如果未能解决你的问题,请参考以下文章
复制并粘贴到另一个工作表的第一个空行,如果第一个单元格为空,则粘贴到上一行