xslt 3.0 xml 到 JSON 数字格式

xslt 3.0 xml to JSON number format

我想将以下 xml 转换为 JSON:

<?xml version='1.0' encoding='utf-8'?>
<map xmlns="http://www.w3.org/2005/xpath-functions">
    <array key="ids">
        <number>3218087</number>
    </array>
</map>

使用

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="3.0">

    <xsl:output method="text" />

    <xsl:template match="/">
        <xsl:value-of select="xml-to-json(.)" />
    </xsl:template>

</xsl:stylesheet>

这给了我:

{"ids":[3.218087E6]}

我需要的是

{"ids":[3218087]}

非常感谢任何帮助。

干杯 普热梅克

number 元素的规范 https://www.w3.org/TR/xpath-functions/#func-xml-to-json 建议:

An element $E named number results in the output of the string result of xs:string(xs:double(fn:string($E)))

并且转换为 xs:string 需要 E 符号表示大于 1000000 的值,我认为 (https://www.w3.org/TR/xpath-functions/#casting-to-string)。

所以我认为 xml-to-json 结果无法更改,除非处理器允许某些选项为数字选择不同的格式规则。