【发布时间】:2015-09-25 11:13:37
【问题描述】:
当遇到一些 if 语句时,我需要制作某种标识符/标志。所以我只在 for-each 中写了一次<h2>(代码如下):
<xsl:for-each select="$matchedNodes">
<xsl:variable name="i" select="0"/>
<xsl:variable name="j" select="0"/>
<xsl:if test="magazineDate != '' and (i < 1)">
<h2>Magasiner</h2>
i++
</xsl:if>
<xsl:if test="homepageArticleDate != '' and (j < 1)">
<h2>Artikel</h2>
j++
</xsl:if>
</xsl:for-each>
我尝试过使用position(),但这不起作用,因为这两个属性都在$matchedNodes内
$matchedNodes 由 umbraco 节点组成。
谁能看到这个问题的解决方案?我曾考虑过使用xsl:template,但我对 XSLT 有点陌生,所以我不知道从哪里开始。
【问题讨论】:
-
允许使用布尔变量作为标志
-
考虑向我们展示您想要创建的matchedNodes 输入节点和相应输出(HTML
h2元素?)的示例,然后我们可以向您展示实现该目标的XSLT 方式。跨度> -
matchedNodes 由 umbraco 节点组成
-
变量在 XSLT 中是“不可变的”,一旦设置就无法更改,因此您当前的方法行不通。要解决您的问题,我们确实需要查看输入 XML 和预期的输出 HTML,然后可以给出另一种方法。谢谢!