Hi All,
I am having difficulty get the following stylesheet to transform unique set of
data once:
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:for-each
select="ns:body/ns:div[(_at_)id='content']/ns:table[(_at_)class='sresults']/ns:tr/ns:td/ns:a">
8 <first_name><xsl:value-of
select="substring-before(@given_name,',')"/></first_name>
9 <surname><xsl:value-of select="@family_name"/></surname>
10 <sex><xsl:value-of select="@gender"/></sex>
11 </xsl:for-each>
12 </employee>
13 </xsl:template>
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[(_at_)id='content']/ns:table[(_at_)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
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--