gpt4 book ai didi

xml - 具有基于变量的小数位数的 XPath 格式数字?

转载 作者:数据小太阳 更新时间:2023-10-29 02:55:22 31 4
gpt4 key购买 nike

我有一个 XML 文档,其中应报告特定 xs:decimal 的小数位数保存在同级节点中。我目前正在努力寻找一种简单的方法来通过 format-number 函数输出它。

我可以使用其他一些函数构建一个图片字符串,但是对于本应(至少在我看来)相对简单和常见的任务来说,这似乎过于冗长了。

例如我目前正在做的是这样的:

<xsl:value-of
select="format-number(myNode/DecimalValue,
concat('#0.',
string-join(for $i in 1 to myNode/DecimalPlaces return '0'))"
/>

有没有更好的办法?

最佳答案

很好的问题!这通常意味着,我不知道答案,但我希望其他人知道,因为这对我来说也是一种痛苦。

无论如何,我做了一些搜索,我认为 round-half-to-even 函数可能会成功 ( http://www.xqueryfunctions.com/xq/fn_round-half-to-even.html )

您的代码将变为:

<xsl:value-of 
select="
round-half-to-even(
myNode/DecimalValue
, myNode/DecimalPlaces
)
"
/>

现在开始一点切线:对于使用 XSLT 1.1 或更低版本和 XPath 1 的人,您可以使用:

<xsl:value-of 
select="
concat(
substring-before(DecimalValue, '.')
, '.'
, substring(substring-after(DecimalValue, '.'), 1, DecimalPlaces -1)
, round(
concat(
substring(substring-after(DecimalValue, '.'), DecimalPlaces, 1)
, '.'
, substring(substring-after(DecimalValue, '.'), DecimalPlaces+1)
)
)
)
"
/>

当然,此代码比原始代码差,但如果有人知道如何解决 XPath 1 的原始问题并且有比这更好的主意,我很乐意听到。(越来越多的时候,我希望世界完全跳过 XML 并立即转向 JSON)

关于xml - 具有基于变量的小数位数的 XPath 格式数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2021720/

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