RE: [xsl] Sibling access in XSL !

Subject: RE: [xsl] Sibling access in XSL !
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Fri, 24 Sep 2004 08:30:40 +0100
The principal "business object" in your data model appears to be a
kind-of-fruit, and yet you haven't got an element in your model representing
instances of this object. This is very poor XML design. Writing stylesheets
will always be much easier if you model the data correctly in the first
place.

Michael Kay
http://www.saxonica.com/ 

> -----Original Message-----
> From: rajasekhar v [mailto:bigfundu@xxxxxxxxxxx] 
> Sent: 23 September 2004 22:57
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Sibling access in XSL !
> 
> Hi,
> 
> I have got a simple XML like this which has some information 
> about fruits
> 
> --------------------------------------------------------------
> --------------------------------------
> <?xml version="1.0" encoding="UTF-8" standalone ="yes"?>
> <FRUIT>
> <IDENTIFICATION>
>    <NAME>APPLE</NAME>
> </IDENTIFICATION>
> 
> <APPEARANCE>
>    <COLOR>RED</COLOR>
> </APPEARANCE>
> 
> <STORAGE>
>    <TEMP>STORE APPLES UNDER 20 DEGREE</TEMP>
> </STORAGE>
> 
> <IDENTIFICATION>
>    <NAME>GRAPE</NAME>
> </IDENTIFICATION>
> 
>   <APPEARANCE>
>    <COLOR>BLACK</COLOR>
> </APPEARANCE>
> 
> <STORAGE>
>    <TEMP>STORE GRAPES UNDER 30 DEGREE</TEMP>
> </STORAGE>
> 
> </FRUIT>
> --------------------------------------------------------------
> --------------------------------------
> 
> 
> When i ran the above XML with the following XSL and Xalan parser,
> 
> --------------------------------------------------------------
> --------------------------------------
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
> version="1.0">
>   <xsl:template match="FRUIT">
>     <HTML>
>       <HEAD><TITLE>XSL TEST</TITLE></HEAD>
>       <BODY>
>         <TABLE>
>           <xsl:apply-templates select="IDENTIFICATION"/>
>           <xsl:apply-templates select="APPEARANCE"/>
>           <xsl:apply-templates select="STORAGE"/>
>         </TABLE>
>       </BODY>
>      </HTML>
>   </xsl:template>
> 
>   <xsl:template match="IDENTIFICATION">
>     <TR><TD><xsl:value-of select="NAME"/></TD></TR>
>   </xsl:template>
> 
>   <xsl:template match="APPEARANCE">
>     <TR><TD><xsl:value-of select="COLOR"/></TD></TR>
>   </xsl:template>
> 
>   <xsl:template match="STORAGE">
>     <TR><TD><xsl:value-of select="TEMP"/></TD></TR>
>   </xsl:template>
> </xsl:stylesheet>
> --------------------------------------------------------------
> --------------------------------------
> 
> 
> I got the output as :
> 
> --------------------------------------------------------------
> --------------------------------------
> APPLE
> GRAPE
> RED
> BLACK
> STORE APPLES UNDER 20 DEGREE
> STORE GRAPES UNDER 30 DEGREE
> --------------------------------------------------------------
> --------------------------------------
> 
> 
> But i need the output as
> 
> 
> --------------------------------------------------------------
> --------------------------------------
> APPLE
> RED
> STORE APPLES UNDER 20 DEGREE
> 
> GRAPE
> BLACK
> STORE GRAPES UNDER 30 DEGREE
> --------------------------------------------------------------
> --------------------------------------
> i.e the details of apples appearing first followed by grape.
> 
> 
> Please let me the know the ways of doing this - to identify 
> the following 
> node and process accordingly.
> 
> 
> Regards,
> Raj
> 
> _________________________________________________________________
> Movies, music, celeb news. Stay in the loop. 
> http://www.msn.co.in/cinema/ 
> With MSN Entertainment!
> 
> 
> --+------------------------------------------------------------------
> 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@xxxxxxxxxxxxxxxxxxxxxx>
> --+--

Current Thread