关闭然后打开循环中的标记

时间:2014-09-20 01:59:57

标签: xslt

查看一个旧的xslt(据我所知,它正在工作,很久以前是其他人写的),其中标记在循环之前启动,然后关闭并在循环内重新打开,最后在循环完成后关闭。所以所有标签最终都会匹配。但是当我尝试在VS 2013中查看它时,我得到一个开始标记与结束标记错误不匹配。

这可能从未奏效......

无论如何,结构看起来像..

<div>
   Blah
   <xsl:for-each>
       different blah
       <xsl:if>
</div>
<div>
       Yet more blah
       </xsl:if>
   </xsl:for-each>
 </div>

有没有一种快速的方法可以让它工作,而不是试图将所有内容重组为同一个循环?

1 个答案:

答案 0 :(得分:1)

  

有没有快速的方法让这个工作,而不是尝试   重组一切都在同一个循环中?

如果您在插入disable-output-escaping的情况下将插入的标记输出为文字,则可以这样做 - 例如:

...
<div>
    <!--  something -->
    <xsl:for-each select="item">
        <!--  something -->
        <xsl:if test="@divide='yes'">
            <xsl:text disable-output-escaping="yes">&lt;/div>&#10;&lt;div></xsl:text>
            <!--  something -->
        </xsl:if>
    </xsl:for-each>
</div>
...

这当然是一个可怕的黑客攻击,你应该抓住第一个机会用一些不错的代码替换它。