我有一个变量:
<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”必须由匹配的结束标记“”终止。
有没有办法实现这个目标?
答案 0 :(得分:0)
您还没有提供太多内容,但您当然可以使用例如。
<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
,都无关紧要。