循环并行子节点

时间:2014-11-19 02:06:59

标签: xml xslt

由此:

  <CustomOffer_Children_Child_Birthdate>
     <DATA>2013-03-03</DATA>
     <DATA>2012-02-02</DATA>
     <DATA>2011-01-01</DATA>
  </CustomOffer_Children_Child_Birthdate>
  <CustomOffer_Children_Child_Age>
     <DATA>333</DATA>
     <DATA>222</DATA>
     <DATA>111</DATA>
  </CustomOffer_Children_Child_Age>

对此:

<Children>
   <Child>
     <Bithdate>2013-03-03</Bithdate>
     <Age>333</Age>
   </Child>
   <Child>
      <Bithdate>2012-02-02</Bithdate>
      <Age>222</Age>
</Child>
   <Child>
      <Bithdate>2011-01-01</Bithdate>
      <Age>111</Age>
   </Child>
</Children>

我试图循环低谷,但我不知道。

 <xsl:template match="fm:CustomOffer_Children_Child_Birthdate">
        <xsl:for-each select="fm:DATA">
            <Child>
                <Bithdate>
                    <xsl:value-of select="node()" />
                </Bithdate>
                <Age>
                    <xsl:value-of select="fm:CustomOffer_Children_Child_Age/fm:DATA/node()" />
                </Age>
            </Child>
        </xsl:for-each>
  </xsl:template>

必须有一个简单的解决方案,但我不明白。

1 个答案:

答案 0 :(得分:1)

如果没有看到背景,很难回答。看看这是否适合您:

<xsl:template match="fm:CustomOffer_Children_Child_Birthdate">
    <xsl:for-each select="fm:DATA">
        <Child>
            <Birthdate>
                <xsl:value-of select="." />
            </Birthdate>
            <xsl:variable name="i" select="position()" />
            <Age>
                <xsl:value-of select="../../fm:CustomOffer_Children_Child_Age/fm:DATA[$i]" />
            </Age>
        </Child>
    </xsl:for-each>
</xsl:template>

-
附:可能有更好的方法来导出数据(来自Filemaker?)。