-1

我在Nodejs中使用xmlBuilder库从准备好的相应 JSON 中创建 XML。

我首先创建 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
}

4

1 回答 1

1

在 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 之间进行转换的工作量要多一些,但优点是它可以让您完全控制输出。

于 2021-06-10T15:42:40.720 回答