生成 XML 具有来自 JSON 的重复标签
Generate XML having repeated tags from JSON
我在 Nodejs 中使用 xmlBuilder 库从准备好的对应 JSON.
我正在创建 JSON 结构,然后将其转换为 XML。 Javascript 是编码语言。
需要创建以下 XML 结构。
<A>TestA</A>
<B>TestB</B>
<C>TestC1</C>
<C>TestC2</C>
<D>TestD</D>
因为标签重复(标签C),我无法做到。请提出解决方案!
{
A: TestA,
B: TestB,
C: // unclear here
D: TestD
}
在 XSLT 3.0(例如使用 Saxon-JS)中,您可以转换此 JSON:
{
"A": "TestA",
"B": "TestB",
"C": ["TestC1", "TestC2"]
"D": "TestD"
}
对此XML:
<doc>
<A>TestA</A>
<B>TestA</B>
<C>TestA</C>
<C>TestA</C>
<D>TestA</D>
</doc>
逻辑:
<xsl:transform
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:map="http://www.w3.org/2005/xpath-functions.map"
version="3.0"
expand-text="yes">
<xsl:template name="xsl:initial-template">
<doc>
<xsl:variable name="json" select="parse-json('my-input.json')"/>
<xsl:for-each select="sort(map:keys($json))">
<xsl:element name="{.}">{$json(.)}</xsl:element>
</xsl:for-each>
</doc>
</xsl:template>
</xsl:transform>
使用 XSLT 3.0 在 JSON 和 XML 之间进行转换比使用某些转换库要多一些工作,但优点是它可以让您完全控制输出。
我在 Nodejs 中使用 xmlBuilder 库从准备好的对应 JSON.
我正在创建 JSON 结构,然后将其转换为 XML。 Javascript 是编码语言。
需要创建以下 XML 结构。
<A>TestA</A>
<B>TestB</B>
<C>TestC1</C>
<C>TestC2</C>
<D>TestD</D>
因为标签重复(标签C),我无法做到。请提出解决方案!
{
A: TestA,
B: TestB,
C: // unclear here
D: TestD
}
在 XSLT 3.0(例如使用 Saxon-JS)中,您可以转换此 JSON:
{
"A": "TestA",
"B": "TestB",
"C": ["TestC1", "TestC2"]
"D": "TestD"
}
对此XML:
<doc>
<A>TestA</A>
<B>TestA</B>
<C>TestA</C>
<C>TestA</C>
<D>TestA</D>
</doc>
逻辑:
<xsl:transform
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:map="http://www.w3.org/2005/xpath-functions.map"
version="3.0"
expand-text="yes">
<xsl:template name="xsl:initial-template">
<doc>
<xsl:variable name="json" select="parse-json('my-input.json')"/>
<xsl:for-each select="sort(map:keys($json))">
<xsl:element name="{.}">{$json(.)}</xsl:element>
</xsl:for-each>
</doc>
</xsl:template>
</xsl:transform>
使用 XSLT 3.0 在 JSON 和 XML 之间进行转换比使用某些转换库要多一些工作,但优点是它可以让您完全控制输出。