The following output generated duplicated set of identical transformed data when
using<xsl:for-each>:
<?xml version="1.0" encoding="UTF-8"?>
<employee>
<first_name>John</first_name>
<surname>smith</surname>
<sex>M</sex>
<first_name>Kelly</first_name>
<surname>Jones</surname>
<sex>F</sex>
</employee>
<?xml version="1.0" encoding="UTF-8"?>
<employee>
<first_name>John</first_name>
<surname>smith</surname>
<sex>M</sex>
<first_name>Kelly</first_name>
<surname>Jones</surname>
<sex>F</sex>
</employee>
I tried the following changes after suspecting that the cause was from the
<xsl:for-each> statement:
1<xsl:template match="/">
2<xsl:apply-templates select="document('E:/employee.xml')/ns:html"/>
3</xsl:template>
4
5<xsl:template match="ns:html">
6<employee>
7<xsl:variable name="employee_data"
select="ns:body/ns:div[@id='content']/ns:table[@class='sresults']/ns:tr/ns:td/ns:a"/>
8<xsl:apply-templates select="$employee_data"/>
9<first_name><xsl:value-of
select="substring-before(@title,',')"/></first_name>
10<surname><xsl:value-of select="@href"/></surname>
11<sex><xsl:value-of select="@gender"/></sex>
12</employee>
13</xsl:template>
Below is the output without using<xsl:for-each>:
<?xml version="1.0" encoding="UTF-8"?>
<employee>
John Kelly
<firstname />
<surname />
<sex/>>
</employee>
<?xml version="1.0" encoding="UTF-8"?>
<employee>
John Kelly
<firstname />
<surname />
<sex/>>
</employee>
Any ideas on what is causing the duplications and why is the second stylesheet
picking up the firstnames of 2 separate xml documents in the wrong place?
The desire output is just a single entry of each record such as the following:
<?xml version="1.0" encoding="UTF-8"?>
<employee>
<first_name>John</first_name>
<surname>smith</surname>
<sex>M</sex>
<first_name>Kelly</first_name>
<surname>Jones</surname>
<sex>F</sex>
</employee>
Thanks a lot,
Jack