Re: [xsl] multiple XML tags -> single output

Subject: Re: [xsl] multiple XML tags -> single output
From: Jiri Jirat <Jiri.Jirat@xxxxxxxxx>
Date: Thu, 28 Dec 2000 08:45:56 +0100
Hello Zack,
1) to play with XPath expressions, try our XLab at:
http://www.zvon.org/cgi-bin/xlab/bin/index.py


2)
The construct:
     <xsl:template match="a">
         <a href="<xsl:value-of select="@href"/>"><xsl:value-of
select="."/></a>
     </xsl:template>
is wrong.

Use 
     <xsl:template match="a">
         <a href="{@href}"><xsl:value-of select="."/></a>
     </xsl:template>
instead.
Or <xsl:element> and <xsl:attribute>.

Best regards
Jirka


zbrown@xxxxxxxxxxxxx wrote:
> 
> On Wed, Dec 27, 2000 at 09:05:29PM -0700, Mike Brown wrote:
> > zbrown@xxxxxxxxxxxxx wrote:
> > > OK, the docs I've got say that '//issue' will match all <issue> elements
> > > anywhere in the document. As opposed to 'issue' which only matches children
> > > in the current context.
> >
> > True, but...
> >
> > <xsl:value-of select="//issue/@num"/>
> >
> > Here you are selecting the 'num' attribute of *all* issue elements in the
> > document.
> >
> > xsl:value-of takes the string-value of its select attribute and makes a
> > text node out of it in the result tree. Check the XPath spec and see that
> > the string-value of a node-set is the string-value of only the *first*
> > node in the set.
> >
> > So no matter what the current node is, this will only ever give you the
> > value of the first num attribute of the first issue element that has one.
> > Is this really what you want?
> 
> I see...
> 
> well, at the moment it is, but I could see wanting to change it, or use a
> more selective construction for something else in the future. For now though,
> <title> and <issue> are not really related to each other syntactically,
> except by what the output wants. So it really does have to take the first
> instance that's available.
> 
> >
> > Also, the concat() function is standard XPath/XSLT and will work with your
> > processor. You just need to be sure the paths are correct. Doing 3
> > xsl:value-of instructions in a row is relatively wasteful.
> 
> Well, I've tried but it doesn't seem to work... that part of the XSL file
> doesn't produce any output at all when I use concat().
> 
> I've also noticed an interesting error, maybe only due to XML::XSLT, where an
> XML snippet containing <a href="URL">text</a> will crash the module if I use an
> XSL snippet like this:
> 
>     <xsl:template match="a">
>         <a href="<xsl:value-of select="@href"/>"><xsl:value-of select="."/></a>
>     </xsl:template>
> 
> The above looks OK to me, but my script returns
> 
> not well-formed at line 47, column 17, byte 1320 at
> /usr/lib/perl5/5.005/i386-linux/XML/Parser.pm line 168
> 
> and dies. (line 47 is that very part of the XSL file)
> 
> Zack
> 
> >
> >    - Mike
> > ____________________________________________________________________
> > Mike J. Brown, software engineer at            My XML/XSL resources:
> > webb.net in Denver, Colorado, USA              http://skew.org/xml/
> >
> >
> >  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> >
> >
> 
> --
> --
> Zack Brown, Linuxcare, Inc.
> tel: 1-415-354-4878x284, fax: 1-415-701-7457
> zbrown@xxxxxxxxxxxxx, http://www.linuxcare.com/
> Linuxcare. Support for the revolution.
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list

-- 
 <name firstName="Jirka" surname="Jirat"/>
 <mail>     jiratj@xxxxxxxxx  </mail>
 <support>  http://www.zvon.org </support>
 <zvonMailingList> http://www.zvon.org/index.php?nav_id=4
</zvonMailingList>

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread