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
结果无法更改,除非处理器允许某些选项为数字选择不同的格式规则。
我想将以下 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
结果无法更改,除非处理器允许某些选项为数字选择不同的格式规则。