[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Re-arranging an XML file

Subject: Re: Re-arranging an XML file
From: Mike Stroud <stroudmw@xxxxxxxxx>
Date: Wed, 21 Jan 2009 13:22:27 +0200
 Re: Re-arranging an XML file
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:  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

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2011 All Rights Reserved.