gpt4 book ai didi

xslt - 当某些字段可能为空时如何对 XSL 中的不同字段求和?

转载 作者:行者123 更新时间:2023-12-01 00:41:08 24 4
gpt4 key购买 nike

我有以下 XSL:

    <xsl:value-of select='translate(format-number(
Gaz/Baf/CH4
+ Gaz/Std/CH4
+ Gaz/Bsa/CH4
+ Gaz/Bbs/CH4
+ Gaz/Bhf/CH4
+ Gaz/Bin/CH4
, "### ### ### ##0.######"),".",",")' />

当我的所有项目都有值时,总和会很好地加起来。但是,如果其中一个为空 ( <CH4 xsi:nil="true"/> ),那么我的总和将变为 NaN .

到目前为止,我尝试添加一个新函数。但是我们使用的pdf生成器不支持它。 (System.Xml.Xsl.XslLoadException:“xsl:function”仍未实现)

我尝试添加一个 C# 函数以添加为 XsltArgumentList。一个简单的return value ?? 0;但我也遇到了一个异常:_System.Xml.Xsl.XslTransformException:Params or values of an extension function with a Clr 'Nullable`1' type are not managed _

现在我正在尝试使用 xsl:variable ,但我没有找到他们向变量添加值的示例(变量一旦定义就为静态变量吗?)

那么,有什么建议吗?

最佳答案

我告诉我的学生使用谓词来过滤掉那些不是数字的成员。

因此,在 XSLT 1 中,我将使用以下内容,依赖于 NaN!=NaN 的原则:

<xsl:value-of select='translate(format-number(
sum( ( Gaz/Baf/CH4
| Gaz/Std/CH4
| Gaz/Bsa/CH4
| Gaz/Bbs/CH4
| Gaz/Bhf/CH4
| Gaz/Bin/CH4 )[number(.)=number(.)] )
, "### ### ### ##0.######"),".",",")' />

在 XSLT 2 中它会更优雅:

<xsl:value-of select='translate(format-number(
sum( (Gaz/Baf/CH4
| Gaz/Std/CH4
| Gaz/Bsa/CH4
| Gaz/Bbs/CH4
| Gaz/Bhf/CH4
| Gaz/Bin/CH4 )[. castable as xs:double] )
, "### ### ### ##0.######"),".",",")' />

(根据 LarsH 的观察修复;谢谢 Lars。)

关于xslt - 当某些字段可能为空时如何对 XSL 中的不同字段求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17219380/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com