json - xslt 3.0 xml 转 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]}
任何帮助将不胜感激。
干杯普热梅克
解决方案
元素的规范https://www.w3.org/TR/xpath-functions/#func-xml-to-json建议:number
一个名为 number 的元素 $E 会输出 xs:string(xs:double(fn:string($E))) 的字符串结果
我认为,转换xs:string
为大于 1000000 的值需要 E 表示法(https://www.w3.org/TR/xpath-functions/#casting-to-string)。
所以我不认为xml-to-json
结果可以改变,除非处理器允许一些选项为数字选择不同的格式规则。
推荐阅读
- dataframe - Pyspark 在循环中重复
- java - 如何使用 docker run 指定 JDK_JAVA_OPTIONS
- python-3.x - 如何迭代csv文件并一次将数据提取为元组
- r - 尝试修改 lmer 固定效果时出错:找不到函数“fixef<-”
- r - 在 R 中更改 LINE 聊天记录的时间戳格式
- azure-functions - Azure 函数实例和缩放
- javascript - 拼接方法而不是用另一个(给定的)对象替换对象 - 只是用未定义的 Vue.js Vuex 替换它
- c++ - 捕获 C++20 内部参数的 lambda 的不同声明需要表达式
- python - 如何从“45/9”之类的字符串中获取两个整数
- javascript - Firebase 数据库给出一个错误,即 firebase.database.rel 不是 web 中的函数