将 JSON 列表转换为 XML 并保持格式
Convert JSON list into XML and keep the format
我有一个 JSON 文件要转换成 XML 格式,其中包含以下字段。对于 "Formats" 和 "MediaFormats",它们是整数列表。
"Stars": 4.5000000000,
"Reviews": 11,
"Formats": [5,6],
"MediaFormats": [1, 2]
我的预期结果是
<Price>29</Price>
<Stars>4.5</Stars>
<Reviews>11</Reviews>
<Formats>5,6</Formats>
<MediaFormats>1,2</MediaFormats>
我尝试了 XmlDocument xmlDoc = JsonConvert.DeserializeXmlNode
但实际结果是
<Price>29</Price>
<Stars>4.5</Stars>
<Reviews>11</Reviews>
<Formats>5</Formats>
<Formats>6</Formats>
<MediaFormats>1</MediaFormats>
<MediaFormats>2</MediaFormats>
知道如何解决这个问题吗?
Post-使用 XSLT 处理结果。没有现成的 JSON-to-XML 转换器(或 XML-to-JSON 转换器)每次都能给您想要的结果;您必须准备好对其进行自定义,而 XSLT 是最好的工具。
您可以使用
实现所需的格式
<xsl:for-each-group select="*" group-adjacent="node-name(.)">
<xsl:copy>
<xsl:value-of select="current-group()" separator=","/>
</xsl:copy>
</xsl:for-each-group>
当然,如果您无论如何都在使用 XSLT,那么您可以考虑使用 XSLT 3.0 的 xml-to-json()
和 json-to-xml()
功能,这样一切都可以通过一个工具完成。
我有一个 JSON 文件要转换成 XML 格式,其中包含以下字段。对于 "Formats" 和 "MediaFormats",它们是整数列表。
"Stars": 4.5000000000,
"Reviews": 11,
"Formats": [5,6],
"MediaFormats": [1, 2]
我的预期结果是
<Price>29</Price>
<Stars>4.5</Stars>
<Reviews>11</Reviews>
<Formats>5,6</Formats>
<MediaFormats>1,2</MediaFormats>
我尝试了 XmlDocument xmlDoc = JsonConvert.DeserializeXmlNode
但实际结果是
<Price>29</Price>
<Stars>4.5</Stars>
<Reviews>11</Reviews>
<Formats>5</Formats>
<Formats>6</Formats>
<MediaFormats>1</MediaFormats>
<MediaFormats>2</MediaFormats>
知道如何解决这个问题吗?
Post-使用 XSLT 处理结果。没有现成的 JSON-to-XML 转换器(或 XML-to-JSON 转换器)每次都能给您想要的结果;您必须准备好对其进行自定义,而 XSLT 是最好的工具。
您可以使用
实现所需的格式<xsl:for-each-group select="*" group-adjacent="node-name(.)">
<xsl:copy>
<xsl:value-of select="current-group()" separator=","/>
</xsl:copy>
</xsl:for-each-group>
当然,如果您无论如何都在使用 XSLT,那么您可以考虑使用 XSLT 3.0 的 xml-to-json()
和 json-to-xml()
功能,这样一切都可以通过一个工具完成。