This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Exclusive formatting..
- To: <xsl-list at lists dot mulberrytech dot com>
- Subject: RE: [xsl] Exclusive formatting..
- From: "Chris Bayes" <chris at bayes dot co dot uk>
- Date: Sun, 26 Aug 2001 18:07:37 +0100
- Reply-To: xsl-list at lists dot mulberrytech dot com
James,
Your phantom values are coming from the builtin templates.
<page>
<news name="Test">
<author>Me</author>
<guts>
This is Line 1.
And this is Line 2.
</guts>
</news>
</page>
When you process the news element with this template
<xsl:template match="news">
<p></p><b>Subject:</b> <xsl:value-of select="@name"
/><br/>
<em>Author:</em> <xsl:value-of select="author" /><br/>
<xsl:value-of select="guts" />
<xsl:apply-templates />
</xsl:template>
It creates your required output but then you do an apply-templates and
the builtin templates process the author and guts elements outputting
their text. Change it to
<xsl:template match="news">
<p></p><b>Subject:</b> <xsl:value-of select="@name"
/><br/>
<em>Author:</em> <xsl:value-of select="author" /><br/>
<xsl:value-of select="guts" />
</xsl:template>
If you have no other elements you want to process or to
<xsl:template match="news">
<p></p><b>Subject:</b> <xsl:value-of select="@name" /><br/>
<xsl:apply-templates />
</xsl:template>
And add
<xsl:template match="author">
<em>Author:</em> <xsl:value-of select="." /><br/>
</xsl:template>
<xsl:template match="guts">
<xsl:value-of select="." />
</xsl:template>
If there are other elements you want to process
Ciao Chris
XML/XSL Portal
http://www.bayes.co.uk/xml
> -----Original Message-----
> From: owner-xsl-list@lists.mulberrytech.com
> [mailto:owner-xsl-list@lists.mulberrytech.com] On Behalf Of
> J.Brown (Ender/Amigo)
> Sent: 26 August 2001 16:41
> To: XSL-List@lists.mulberrytech.com
> Subject: [xsl] Exclusive formatting..
>
>
> Hey all,
> I've been trying to maintain a large app at work that
> uses an XML stylesheet to return valid HTML from XML
> documents stored in a CVS repositry.
>
> To make the story short, I've been trying to learn XSL in the
> vauge hope it'll make life easier if I know what I'm trying
> to maintain :)
>
> But I've already ran into a problem. I want to create a
> stylesheet that will basically take in a "page" element,
> containing multiple "news" items. Each "news" item will have
> a "author" value, a subject (the name of the item), and a set of text.
>
> For some reason the stylesheet I'm using prints the formatted
> text fine, but then images the original text. I'm sure
> there's a fundimental concept I'm missing here :)
>
> Eg, I want this:
> <HTML><HEAD><TITLE>A page</TITLE></HEAD><BODY>
> Subject: Blah
> Author: Me
> Hello, I am a news item.
> This is line 2.
> </BODY></HTML>
>
> What I get is this:
> <HTML><HEAD><TITLE>A page</TITLE></HEAD><BODY>
> Subject: Blah
> Author: Me
> Hello, I am a news item.
> This is line 2.
>
> Me Hello, I am a news item.
> This is line 2.
> </BODY></HTML>
>
> With the second part just a phantom.
>
> Here's the XML I'm starting with:
> www.nehahra.com/test.xml
>
> Here's the XSL I'm trying to apply:
> www.nehahra.com/test.xsl
>
> Thanks in advance :)
>
> Regards, | If I must have computer systems with publically
> Ender | available terminals, the maps they display of
> my complex
> (James Brown) | will have a room clearly marked as
> the Main Control Room.
> | That room will be the Execution Chamber. The
> actual main
> | control room will be marked as Sewage
> Overflow Containment.
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list