我有以下模板:
<xsl:template match="footnote">
<xsl:variable name = "string">
<xsl:value-of select="."/>
</xsl:variable>
<xsl:variable name = "bool">
<xsl:if test="$string = preceding-sibling::node()/$string">
<xsl:text>false</xsl:test>
</xsl:if>
</xsl:variable>
<xsl:if test="$bool != 'false'">
<!-- DO STUFF -->
</xsl:if>
</xsl:template>
我正在尝试检查当前节点的 $string 变量并将其与所有先前的脚注节点进行检查,以查看它们是否具有相同的 $string 变量。如果它与前面的任何兄弟姐妹都不匹配,那么它应该做一些事情,否则它什么也不做。
使用我拥有的代码,即使尚未创建脚注节点,测试 "$string = previous-sibling::node()/$string" 也始终评估为 true。
谁能帮我吗?我很难创建表达式来与所有先前兄弟姐妹中的变量进行比较。
编辑:示例 XML:
<xml>
<footnote>Footnote 1</footnote>
<footnote>Footnote 2</footnote>
<footnote>Footnote 1</footnote>
<footnote>Footnote 1</footnote>
<footnore>Footnote 3</footenote>
</xml>
我正在尝试将其转换为:
<xml>
<footnote>Footnote 1</footnote>
<footnote>Footnote 2</footnote>
<footnote>Footnore 3</footnore>
</xml