<xsl:template match="element">
<temp><xsl:value-of select="."/></temp>
<xsl:apply-templates/>
</xsl:template>
according to this template, for every "element" node, the processor will
produce and <temp> node which content is resume by ".//text()". That is
"heading1" for example in your case. After this, it (the processor) will
call all descendant node of "element" and then apply a defaut template to
those for which there is no template defined. That's why "heading1" appears
after <temp> node.
you can read "XSLT programer's reference, wrox press isbn: 1-861005-06-7"
for more information about default processing.
change <xsl:apply-template/> to <xsl:apply-template select="*"/> for
precluding appearance of "heading x" text node.
Hope this help
regards
From: "A.Little" <A(_dot_)Little(_at_)open(_dot_)ac(_dot_)uk>
Reply-To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
To: xsl-list <xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
Subject: [xsl] Newbie issue with apply-templates and output
Date: Fri, 11 Mar 2005 16:21:36 -0000
Hi,
I'm quite new to all this XSL stuff and have now got very confused with
what's happening with the output using my XSL - it's dumping out the
text from nodes even tough I've not specified in the XSL to do this. The
code (xml & xsl) is given below with the output - and I'm confused why
it's output 'heading 1' etc twice, and why 'I'm here' is being output at
all. How can I change my xsl so it only outputs the headings once, and
the extra text isn't displayed at all?
It's probably obvious to everyone else - but not to me! :-(
Any help/explanation much appreciated,
Alex
--------------------
Here's the XSL:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml"/>
<xsl:template match="/">
<report>
<xsl:apply-templates/>
</report>
</xsl:template>
<xsl:template match="element">
<temp><xsl:value-of select="."/></temp>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="body">
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>
And here is the xml:
<?xml version="1.0" encoding="UTF-8"?>
<html>
<element>heading 1</element>
<element>heading 2</element>
<body>
<element>heading 3</element>
<element>heading 4</element>
I'm here
</body>
</html>
But the output I'm getting is:
<?xml version="1.0" encoding="UTF-16"?>
<report>
<temp>heading 1</temp>
heading 1
<temp>heading 2</temp>
heading 2
<temp>heading 3</temp>
heading 3
<temp>heading 4</temp>
heading 4
I'm here
</report>
--~------------------------------------------------------------------
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>
--~--
_________________________________________________________________
MSN Messenger : dialoguez en temps réel avec vos amis !
http://g.msn.fr/FR1001/866
--~------------------------------------------------------------------
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>
--~--