【发布时间】:2013-01-18 18:21:45
【问题描述】:
我试图在 XSLT 的 foreach 语句中插入一个 if-else 语句。 这个想法是,如果节点存在,它将插入一个换行符。这就是我到目前为止所拥有的
<xsl:for-each select="Books/Publisher/[BookTitle]">
<strong>
<xsl:value-of select=" BookTitle " />
</strong>
<xsl:if test=" Books/Publisher/BookTitle">!= ''">
<br/>
</xsl:if>
</xsl:for-each>
问题是,当我插入 if-else 语句时,换行标记不会出现,但只有当我完全删除 if else 时才会出现。有人可以向我解释为什么会发生这种情况,因为我已经检查过节点在那里并且插入换行符应该可以工作。所以foreach循环内的if-else一定有问题。
【问题讨论】:
-
这是[Stackoverflow][1]中的一篇文章,值得一读[1]:stackoverflow.com/questions/5169140/…
-
JLRishe 给了你正确的代码,但没有告诉你你做错了什么。您忘记了 xsl:for-each 更改了上下文,特别是评估相对路径表达式的上下文项。
标签: asp.net xslt if-statement foreach line-breaks