当$ variable = $ variable时,XSL选择

时间:2011-09-07 15:28:12

标签: xslt variables

我正在尝试检查两个XSL变量是否相同:

<?xml version="1.0" encoding="UTF-8"?>
<files>
<file filename="export.csv" path="/export" active="true" ftp="false">
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:php="http://php.net/xsl">
<xsl:output method="text" encoding="UTF-8"/>
<xsl:variable name="quote">"</xsl:variable>
<xsl:variable name="sepstart" select="'&#44;'"/> 

<xsl:template match="/">
<xsl:text>"CustomerID"</xsl:text>

<xsl:variable name="second_check">0</xsl:variable>

<xsl:for-each select="orders/order">
<xsl:for-each select="items/item">

<xsl:variable name="output">
<xsl:variable name="first_check"><xsl:value-of select="normalize-space(../../increment_id)"/></xsl:variable>

<xsl:choose>
<xsl:when test="$first_check = $second_check">

Do something...

</xsl:when>
<xsl:otherwise>

Do something...

<xsl:variable name="second_check"><xsl:value-of select="normalize-space(../../increment_id)"/></xsl:variable>

</xsl:otherwise>
</xsl:choose>

</xsl:variable>
<xsl:value-of select="$output" />
<xsl:text>&#xD;</xsl:text>

</xsl:for-each>

</xsl:for-each>
</xsl:template>

</xsl:stylesheet>
</file>
</files>

然而,它只是跳过两者而不输出任何东西。

有谁可以指出我做错了什么?

1 个答案:

答案 0 :(得分:1)

您无法在XSL中“重新声明”变量。当你写

<xsl:variable name="second_check">
  <xsl:value-of select="normalize-space(../../increment_id)"/>
</xsl:variable>

因为这个没有影响

<xsl:variable name="second_check">0</xsl:variable>

虽然(但)我无法帮助你,因为我不确定你要做什么