【问题标题】:XML Use another variable if first one is emptyXML 如果第一个变量为空,则使用另一个变量
【发布时间】: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>

谢谢。

【问题讨论】:

    标签: xml xslt


    【解决方案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>
      

      未测试,因为没有提供输入示例。

      【讨论】:

        猜你喜欢
        • 2013-08-02
        • 2021-06-27
        • 1970-01-01
        • 1970-01-01
        • 2023-03-15
        • 2015-03-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多