查看一个旧的xslt(据我所知,它正在工作,很久以前是其他人写的),其中标记在循环之前启动,然后关闭并在循环内重新打开,最后在循环完成后关闭。所以所有标签最终都会匹配。但是当我尝试在VS 2013中查看它时,我得到一个开始标记与结束标记错误不匹配。
这可能从未奏效......
无论如何,结构看起来像..
<div>
Blah
<xsl:for-each>
different blah
<xsl:if>
</div>
<div>
Yet more blah
</xsl:if>
</xsl:for-each>
</div>
有没有一种快速的方法可以让它工作,而不是试图将所有内容重组为同一个循环?
答案 0 :(得分:1)
有没有快速的方法让这个工作,而不是尝试 重组一切都在同一个循环中?
如果您在插入disable-output-escaping
的情况下将插入的标记输出为文字,则可以这样做 - 例如:
...
<div>
<!-- something -->
<xsl:for-each select="item">
<!-- something -->
<xsl:if test="@divide='yes'">
<xsl:text disable-output-escaping="yes"></div> <div></xsl:text>
<!-- something -->
</xsl:if>
</xsl:for-each>
</div>
...
这当然是一个可怕的黑客攻击,你应该抓住第一个机会用一些不错的代码替换它。