Input XML
<code><root>
<Bank>
<BankDetail>
<Name1>BankName</Name1>
<Name2>TestBank</Name2>
</BankDetail>
</Bank>
<Item>
<Item1>Text</Item1>
</Item>
<Item>
<Item1>Text</Item1>
</Item>
<Item>
<Item1>Text</Item1>
</Item>
<Item>
<Item1>Text</Item1>
</Item>
<Item>
<Item1>Text</Item1>
</Item>
</root>
</code>
<code><root>
<Bank>
<BankDetail>
<Name1>BankName</Name1>
<Name2>TestBank</Name2>
</BankDetail>
</Bank>
<Item>
<Item1>Text</Item1>
</Item>
<Item>
<Item1>Text</Item1>
</Item>
<Item>
<Item1>Text</Item1>
</Item>
<Item>
<Item1>Text</Item1>
</Item>
<Item>
<Item1>Text</Item1>
</Item>
</root>
</code>
<root>
<Bank>
<BankDetail>
<Name1>BankName</Name1>
<Name2>TestBank</Name2>
</BankDetail>
</Bank>
<Item>
<Item1>Text</Item1>
</Item>
<Item>
<Item1>Text</Item1>
</Item>
<Item>
<Item1>Text</Item1>
</Item>
<Item>
<Item1>Text</Item1>
</Item>
<Item>
<Item1>Text</Item1>
</Item>
</root>
I want to update <Item1> node value with BankItem 1, BankItem 4, BankItem 2, BankItem 5 and BankItem 3
So the Output will be
<code><root>
<Bank>
<BankDetail>
<Name1>BankName</Name1>
<Name2>TestBank</Name2>
</BankDetail>
</Bank>
<Item>
<Item1>BankItem - 1</Item1>
</Item>
<Item>
<Item1>BankItem - 4</Item1>
</Item>
<Item>
<Item1>BankItem - 2</Item1>
</Item>
<Item>
<Item1>BankItem - 5</Item1>
</Item>
<Item>
<Item1>BankItem - 3</Item1>
</Item>
</root>
</code>
<code><root>
<Bank>
<BankDetail>
<Name1>BankName</Name1>
<Name2>TestBank</Name2>
</BankDetail>
</Bank>
<Item>
<Item1>BankItem - 1</Item1>
</Item>
<Item>
<Item1>BankItem - 4</Item1>
</Item>
<Item>
<Item1>BankItem - 2</Item1>
</Item>
<Item>
<Item1>BankItem - 5</Item1>
</Item>
<Item>
<Item1>BankItem - 3</Item1>
</Item>
</root>
</code>
<root>
<Bank>
<BankDetail>
<Name1>BankName</Name1>
<Name2>TestBank</Name2>
</BankDetail>
</Bank>
<Item>
<Item1>BankItem - 1</Item1>
</Item>
<Item>
<Item1>BankItem - 4</Item1>
</Item>
<Item>
<Item1>BankItem - 2</Item1>
</Item>
<Item>
<Item1>BankItem - 5</Item1>
</Item>
<Item>
<Item1>BankItem - 3</Item1>
</Item>
</root>
I dont want to use For Each loop. I want to update it by Template Match. Is there any way I can achieve this? Please suggest.
Here is my Template –
<code><xsl:template match="root/Item/Item1">
<xsl:variable name="i" select="position()" />
<xsl:copy>
<xsl:value-of select="Item1[$i]"/>
</xsl:copy>
</xsl:template>
</code>
<code><xsl:template match="root/Item/Item1">
<xsl:variable name="i" select="position()" />
<xsl:copy>
<xsl:value-of select="Item1[$i]"/>
</xsl:copy>
</xsl:template>
</code>
<xsl:template match="root/Item/Item1">
<xsl:variable name="i" select="position()" />
<xsl:copy>
<xsl:value-of select="Item1[$i]"/>
</xsl:copy>
</xsl:template>