Xml 在重复元素中展开重复元素

Xml 在重复元素中展开重复元素,xml,xslt,Xml,Xslt,我想在某种程度上转换xml中的重复元素 假设我有以下几点: <row> <id>1</id> <key>value1</key> <key>value2</key> </row> <row> <id>1</id> <key>value1</key>

我想在某种程度上转换xml中的重复元素

假设我有以下几点:

    <row>
      <id>1</id>
      <key>value1</key>
      <key>value2</key>
    </row>
    <row>
      <id>1</id>
      <key>value1</key>
    </row>
    <row>
      <id>1</id>
      <key>value2</key>
 <entitlementKeys>
    <row>
        <id>610AN02611</id>
        <entitlementKey>IsoCountryNumber</entitlementKey>
        <id>610AN02611</id>
        <entitlementKey>ProductType</entitlementKey>
        <id>610AN02611</id>
        <entitlementKey>SerialNumber</entitlementKey>
     </row>
    <row>
        <id>610AN02671</id>
        <entitlementKey>IsoCountryNumber</entitlementKey>
        <id>610AN02671</id>
        <entitlementKey>ProductType</entitlementKey>
        <id>610AN02671</id>
        <entitlementKey>SerialNumber</entitlementKey>
     </row>
我想应用样式表将其转换为以下内容:

    <row>
      <id>1</id>
      <key>value1</key>
      <key>value2</key>
    </row>
    <row>
      <id>1</id>
      <key>value1</key>
    </row>
    <row>
      <id>1</id>
      <key>value2</key>
 <entitlementKeys>
    <row>
        <id>610AN02611</id>
        <entitlementKey>IsoCountryNumber</entitlementKey>
        <id>610AN02611</id>
        <entitlementKey>ProductType</entitlementKey>
        <id>610AN02611</id>
        <entitlementKey>SerialNumber</entitlementKey>
     </row>
    <row>
        <id>610AN02671</id>
        <entitlementKey>IsoCountryNumber</entitlementKey>
        <id>610AN02671</id>
        <entitlementKey>ProductType</entitlementKey>
        <id>610AN02671</id>
        <entitlementKey>SerialNumber</entitlementKey>
     </row>
我就是搞不懂=\

这是我尝试应用的样式表:

    <xsl:variable name = "srcDoc1" select = "bpws:getVariableData('xmlChisData')"/>
    <xsl:template match = "/">
        <xsl:element name = "entitlementKeys" namespace = "">
            <xsl:for-each select = "$srcDoc1/Json/array">
                    <xsl:element name = "row" namespace = "">
                        <xsl:variable name = "varID" select = "id"/>
                        <xsl:for-each select ="entitlementKeys">
                            <xsl:element name = "id" namespace = "">
                                <xsl:value-of select = "$varID"/>
                            </xsl:element>
                            <xsl:element name = "entitlementKey" namespace = "">
                                <xsl:value-of select = "."/>
                            </xsl:element>
                        </xsl:for-each>
                    </xsl:element>
            </xsl:for-each>
        </xsl:element>
    </xsl:template>
但是,这会产生以下结果:

    <row>
      <id>1</id>
      <key>value1</key>
      <key>value2</key>
    </row>
    <row>
      <id>1</id>
      <key>value1</key>
    </row>
    <row>
      <id>1</id>
      <key>value2</key>
 <entitlementKeys>
    <row>
        <id>610AN02611</id>
        <entitlementKey>IsoCountryNumber</entitlementKey>
        <id>610AN02611</id>
        <entitlementKey>ProductType</entitlementKey>
        <id>610AN02611</id>
        <entitlementKey>SerialNumber</entitlementKey>
     </row>
    <row>
        <id>610AN02671</id>
        <entitlementKey>IsoCountryNumber</entitlementKey>
        <id>610AN02671</id>
        <entitlementKey>ProductType</entitlementKey>
        <id>610AN02671</id>
        <entitlementKey>SerialNumber</entitlementKey>
     </row>
我不知道如何让每一个单独排成一行

XML

XSLT


你到底在哪里被困?这是一个相当琐碎的问题:为每个key.updated OP创建一行……我不知道是什么让这个问题变得琐碎不幸的是,我不是xslt/xml专家,可能与