【问题标题】: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,都可以解决原始问题。