Reputation: 1656
I am using XSLT
Input is like below
<data>
<details>
<DATA>
<name>nameValue</name>
</DATA>
<DATA>
<name>nameValue1</name>
</DATA>
<details>
<data>
XSLT is
<xsl:template match="details">
<xsl:copy>
<info>
<person_name>
<xsl:value-of select="DATA/name"/>
</person_name>
</info>
</xsl:copy>
</xsl:template>
output
<info>
<person_name>nameValue</person_name>
</info>
Expected output is like below
<info>
<person_name>nameValue</person_name>
</info>
<info>
<person_name>nameValue1</person_name>
</info>
Upvotes: 0
Views: 267
Reputation: 70648
Your XML is not well-formed, as it has opening tag where closing tags should be. But assuming it looked like this...
<data>
<details>
<DATA>
<name>nameValue</name>
</DATA>
<DATA>
<name>nameValue1</name>
</DATA>
</details>
</data>
... what you need to do is use an xsl:for-each
to select each child DATA
element
<xsl:template match="details">
<xsl:copy>
<xsl:for-each select="DATA">
<info>
<person_name>
<xsl:value-of select="name"/>
</person_name>
</info>
</xsl:for-each>
</xsl:copy>
</xsl:template>
Upvotes: 2