Page 1 of 1

Transforming xml using xslt

Posted: Mon Nov 17, 2014 1:35 pm
by szpt9m
Hi All,

I am new to xslt and working on a project to transfer one xml into another.

The issue I am getting is while iterating and assigning values as shown below.

Example XML1:

Code: Select all


<something:Main id="id8" modifiedDate="2014-11-14 14:33:33">
<something:Parent>FirstValue</something:Parent>
<something:Parent>SecondValue</something:Parent>
<something:Parent>ThirdValue</something:Parent>
<something:Parent>FourthValue</something:Parent>
<something:Parent>FifthValue</something:Parent>
<something:Parent>SixthValue</something:Parent>
</something:Main>
Now when i use xslt to get each values for further processing it is taking first value everytime. Like

Code: Select all


<xsl:for-each select="//something:Main/something:Parent">
<xsl:variable name="ClassId">
<xsl:value-of select="//something:Parent" />
</xsl:variable>
<xsl:element name="Testing">
<xsl:attribute name="ClassID">
<xsl:value-of select="$ClassId" />
</xsl:attribute>
</xsl:element>
</xsl:for-each>
Here for the first iteration it will print "FirstValue" but in second iteration as well, instead of printing second value it is priting FirstValue. Could you please tell me where am I going wrong?

Thanks.

Re: Transforming xml using xslt

Posted: Tue Nov 18, 2014 6:40 pm
by adrian
Hi,

You're not using the current context (.) in the for-each statement.
http://www.w3schools.com/xsl/xsl_for_each.asp
Instead of

Code: Select all

<xsl:value-of select="//something:Parent"/>
Try

Code: Select all

<xsl:value-of select="." />

Regards,
Adrian