Subject: [xsl] Re: Re-arranging an XML file From: Mike Stroud <stroudmw@xxxxxxxxx> Date: Wed, 21 Jan 2009 13:22:27 +0200 |
Hi again George and all, As I mentioned in an earlier post: I'm new to XSL (I've got about 3 hours experience) and am still trying to get my head around it, I have an XSL file that outputs in CSV format, but when I tried applying it to the script you sent (below) everything falls down. There are a few things I don't understand: - how can I output in CSV format? - how do I remove the "<AddedAlbums> tag? - how can I include (for example) "LastChangedBy" labeling it something else? (eg "User") An example would be appreciated. This is all a long way from the COBOL I worked on 20+ years ago! Thanks again, Mike in SA > Date: Tue, 20 Jan 2009 10:41:51 +0200 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > From: George Cristian Bina <george@xxxxxxxxxxxxx> > Subject: Re: [xsl] Re: Re-arranging an XML file > Message-ID: <49758E4F.8040904@xxxxxxxxxxxxx> > > Hi Mike, > > I do not understand what is the part you have difficulties with. You can > define a key to get the Author elements from their id and then just use > that, see below: > > <?xml version="1.0" encoding="UTF-8"?> > <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > version="1.0"> > <xsl:output indent="yes" /> > <xsl:key name="artistById" match="Artist" use="Number"/> > <xsl:template match="/"> > <xsl:apply-templates select="*/AddedAlbums"/> > </xsl:template> > <xsl:template match="AddedAlbums"> > <AddedAlbums><xsl:apply-templates/></AddedAlbums> > </xsl:template> > <xsl:template match="Album"> > <Album><xsl:apply-templates/></Album> > </xsl:template> > <xsl:template match="AlbumName"> > <AlbumName><xsl:value-of select="."/></AlbumName> > </xsl:template> > <xsl:template match="ArtistNumber"> > <Name><xsl:value-of select="key('artistById', .)/Name"/></Name> > </xsl:template> > <xsl:template match="*|text()"/> > </xsl:stylesheet> > > Best Regards, > George > -- > George Cristian Bina > <oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger > http://www.oxygenxml.com > > Mike Stroud wrote: >> Dear Group, >> >> Further to my mail of Date: Tue, 13 Jan 2009: I am still struggling >> with this one. Here is an adaptation of a real-world example: >> >> <?xml version="1.0" encoding="UTF-8"?> >> <wc:COLLECTION xmlns:wc="http://www.ptc.com/infoengine/1.0"> >> <DeletedArtists NAME="DeletedArtists" TYPE="Unknown" STATUS="0"> >> </DeletedArtists> >> <AddedArtists NAME="AddedArtists" TYPE="Unknown" STATUS="0"> >> <Artist> >> <LastChangedBy>Mike</LastChangedBy> >> <Number>0000000015</Number> >> <Name>Bob Dylan</Name> >> </Artist> >> <Artist> >> <LastChangedBy>Mike</LastChangedBy> >> <Number>0000000016</Number> >> <Name>Bonnie Tyler</Name> >> </Artist> >> </AddedArtists> >> <DeletedAlbums NAME="DeletedAlbums" TYPE="Unknown" STATUS="0"> >> </DeletedAlbums> >> <AddedAlbums NAME="AddedAlbums" TYPE="Unknown" STATUS="0"> >> <Album> >> <ArtistNumber>0000000015</ArtistNumber> >> <AlbumNumber>0000000010</AlbumNumber> >> <AlbumName>Blood on the Tracks</AlbumName> >> </Album> >> <Album> >> <ArtistNumber>0000000015</ArtistNumber> >> <AlbumNumber>0000000011</AlbumNumber> >> <AlbumName>Empire Burlesque</AlbumName> >> </Album> >> <Album> >> <ArtistNumber>0000000016</ArtistNumber> >> <AlbumNumber>0000000020</AlbumNumber> >> <AlbumName>Hide Your Heart</AlbumName> >> </Album> >> </AddedAlbums> >> </wc:COLLECTION> >> >> How can I turn that into something like this using XSL? >> >> <AddedAlbums> >> <Album> >> <Name>Bob Dylan</Name> >> <AlbumName>Blood on the Tracks</AlbumName> >> </Album> >> <Album> >> <Name>Bob Dylan</Name> >> <AlbumName>Empire Burlesque</AlbumName> >> </Album> >> <Album> >> <Name>Bonnie Tyler</Name> >> <AlbumName>Hide Your Heart</AlbumName> >> </Album> >> </AddedAlbums> >> >> Many thanks,
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Re: Re-arranging an XML file, Mike Stroud | Thread | Re: [xsl] Re: Re-arranging an XML f, Wendell Piez |
[xsl] Re: Re-arranging an XML file, Mike Stroud | Date | Re: [xsl] Re: Re-arranging an XML f, Wendell Piez |
Month |