如何打印单个<div>而不在XSLT中关闭它

Don*_*ply 2 xslt

基本上我需要在一个if语句中打开一个div并在另一个语句中关闭它.我试过了

<xsl:value-of select="'<div>'"/>
Run Code Online (Sandbox Code Playgroud)

但是失败了,因为属性中不允许<和>.有任何想法吗?干杯

Lar*_*rsH 5

如果您想要做的是输出一些内容而不管任何条件,但是<div>根据条件将内容包装起来:

  <xsl:choose>
     <xsl:when test="myConditionIsTrue">
        <div>
           <xsl:call-template name="bar"/>
        </div>
     </xsl:when>
     <xsl:otherwise>
        <xsl:call-template name="bar"/>            
     </xsl:otherwise>
  </xsl:choose>
Run Code Online (Sandbox Code Playgroud)

您可以更改<xsl:call-template><xsl:apply-templates><xsl:value-of select="$myvariable" />取决于不变的内容是什么等等.

这样,您将树结构视为树结构,利用基于XML树的处理器的强大功能,而不是试图对抗它.DOE可能在许多情况下工作,但它不可移植,因为XSLT处理器不需要遵守它.实际上他们不能,除非他们碰巧负责特定管道中的序列化.上述方法避免了这个问题.