【发布时间】:2012-09-04 19:45:06
【问题描述】:
假设我有以下 XML
<A>100</A>
<B>200</B>
<C>300</C>
以及以下 XSLT
<TEST>
<xsl:value-of select="A + B + C"/>
</TEST>
它产生以下输出
<TEST>600</TEST>
但是,当其中一个节点为空白时
<A></A>
<B>200</B>
<C>300</C>
我得到以下信息。
<TEST>NaN</TEST>
我只想添加有效数字的节点。如果 xsl 允许我通过添加到已经存在的变量来动态替换变量值,我可以这样做,但即使这样也会很麻烦。我想我想念一个简单的方法吗?
我只想要 XSLT 1.0 的答案。
谢谢!
【问题讨论】:
-
不是重复的,因为另一个是一个节点名称的总和,这是不同节点的总和。加上那是 xslt 2.0。我要的是 1.0。
-
当然不是完全相同的副本,但包含有关如何针对空节点进行测试的提示(不特定于 xslt 2.0)。
-
我已经知道如何使用过滤器来测试空节点。我试图一次测试三个不同节点的问题给了我这个问题。试过 A[.!=''] + B[.!=''] + C[.!=''] 并且有同样的问题。在我看到更好的答案总和(A[.!=''] | B[.!=''] | C[.!=''])之前得到了这个。问题是我的没有测试它是否是一个数字,而且我在一个中使用了三个过滤器。