【发布时间】:2017-06-19 21:25:57
【问题描述】:
我在这个示例文件中遇到了减法问题:
<EVENTS>
<ROW ID="204" ID_PLACE="1" EVENT_TYPE="B" EVENT_NAME="TEST1" EVENT_ID="201">
<PRICE>
<ROW EVENT_PRICE="165,00"/>
</PRICE>
</ROW>
<ROW ID="205" ID_PLACE="1" EVENT_TYPE="P" EVENT_NAME="TEST1" EVENT_ID="201">
<PRICE>
<ROW EVENT_PRICE="125,00"/>
</PRICE>
</ROW>
</EVENTS>
她是我的 XSLT 的相关部分:
<xsl:for-each select="EVENTS/ROW/PRICE/ROW">
<xsl:variable name="event_b">
<xsl:choose>
<xsl:when test="EVENT_TYPE=B">
<xsl:value-of select="EVENT_PRICE" />
</xsl:when>
</xsl:choose>
</xsl:variable>
<xsl:variable name="event_p">
<xsl:choose>
<xsl:when test="EVENT_TYPE=P">
<xsl:value-of select="EVENT_PRICE" />
</xsl:when>
</xsl:choose>
</xsl:variable>
<xsl:value-of select="number($event_b) - number($event_p)" />
</xsl:for-each>
我必须从对应的类型 B 中减去类型为 P 的 event_price。在此示例中,我想得到一个结果 40,并将其输出到结果树中,但它不起作用。怎么了?
【问题讨论】:
-
发布您的代码,这样我们就不必猜测您的问题是什么。 -- 提示:您需要将逗号翻译成一个点才能将价格识别为数字。
-
请不要在 cmets 中发布代码 - 改为编辑您的问题。还要确保您的代码完整 - 请参阅:minimal reproducible example.
-
我需要这个 165,00-125,00=40,00 的结果。我对数字格式没有问题。我在一个名为 event_price_subtract 的节点中显示减法结果时遇到问题。
-
"我没有数字格式的问题。"我相信你会的。我们会在您发布代码时确定。
-
我编辑了我的帖子并附上了我用于减法的 xslt。