【问题标题】:xslt 3.0 conditional dynamic element creationxslt 3.0 条件动态元素创建
【发布时间】:2018-04-04 12:32:13
【问题描述】:

我有一个变量:

<xsl:variable name="courseType" select="Record[1]/course-type"/>  

并基于一个值,我想创建一个动态元素:

<xsl:if test="$courseType ='B'">
    <xsl:element name="newElement">
</xsl:if>
...
other nodes
...
<xsl:if test="$courseType ='B'">
    </xsl:element>
</xsl:if>

问题是:

元素类型“xsl:element”必须以匹配的结束标签“”结束。

有什么办法可以做到吗?

【问题讨论】:

    标签: dynamic element xslt-3.0


    【解决方案1】:

    您没有提供太多内容,但您当然可以使用例如

    <xsl:variable name="other-nodes">
      ...
    </xsl:variable>
    
    <xsl:choose>
      <xsl:when test="$course-type = 'B'">
        <newElement>
          <xsl:sequence select="$other-nodes"/>
        </newElement>
      </xsl:when>
      <xsl:otherwise>
        <xsl:sequence select="$other-nodes"/>
      </xsl:otherwise>
    </xsl:choose>
    

    请注意,我对newElement 使用了文字结果元素,而不是使用xsl:element,因为我只认为如果您想在运行时计算元素名称,则必须使用xsl:element,但这并不重要无论您使用文字结果元素还是xsl:element,都可以解决原始问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-14
      • 2020-06-15
      • 2010-11-30
      • 2022-08-18
      • 2019-04-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多