OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   XSLT hierarchy to flat

[ Lists Home | Date Index | Thread Index ]
  • From: Lucio Piccoli <Lucio.Piccoli@one2one.co.uk>
  • To: xml-dev@xml.org
  • Date: Thu, 12 Oct 2000 17:48:22 +0100

hi all,

I am attempting to transform a XML document ( which is exported to me) from
a hierarchical to flat structure. However i am having problems with the
repeating elements at the same level. ie. elements<intersection> <section>.
It is easier if the problem is illustrated.

Both the XML and XSL are below.

My problem is that the 2 for-each loops produce output like
<row><col1>51.658936</col1><col2>-0.252627</col2><col3>BORE</col3><col4>ahea
d</col4></row>
<row><col1>51.654978</col1><col2>-0.24951</col2><col3>BORE</col3><col4>ahead
</col4></row>
<row><col5>A1201</col5></row>
<row><col5>COMPTON</col5></row>

I require the output of 
<row><col1>51.658936</col1><col2>-0.252627</col2><col3>BOREHAMWOOD</col3><co
l4>ahead</col4></row><col5>A1201</col5></row>

The ideal solution would be to have the XML defining a parent element of
<intersection> and <section> but the XML is exported to me.

Firstly can XSLT solve this problem? If so any help is appreciated.

-------------XSL-----------------------

    <xsl:template match="/">
    
    <xsl:for-each select="//intersection">                
    <row>
        <xsl:call-template name="intersection_template"/>
    </row>
    </xsl:for-each>

     <xsl:for-each select="//section">                
    <row1>
        <xsl:call-template name="section_template"/>                
    </row1>
    </xsl:for-each>
    
</xsl:template>

<xsl:template name="section_template">
        <col5>
            <xsl:value-of select="name"/>        
        </col5>

</xsl:template>

<xsl:template name="intersection_template">
        <col1>
            <xsl:value-of select="navid/@latitude"/>        
        </col1>
        <col2>
            <xsl:value-of select="navid/@longitude"/>        
        </col2>
        <col3>
            <xsl:value-of select="location"/>        
        </col3>        
        <col4>
            <xsl:value-of select="direction"/>        
        </col4>        


</xsl:template>


----------------XML-------------------
<intersection>
  <navid latitude="51.658936" longitude="-0.252627" /> 
  <location>BOREHAMWOOD</location> 
  <direction>ahead</direction> 
  </intersection>
<section type="road" level="1" length="898" realtime="171" fixedtime="171">
  <name>A5135</name> 
  </section>
<intersection>
  <navid latitude="51.654978" longitude="-0.24951" /> 
  <location>BOREHAMWOOD</location> 
  <direction>ahead</direction> 
  <ramp /> 
  </intersection>
<section type="road" level="1" length="18412" realtime="1753"
fixedtime="1753">
  <name>A1</name> 
  </section>



adios

-lucio

---------------------------------------------------------------------
LUCIO.PICCOLI@one2one.co.uk
Elstree Tower			 		
Elstree Way
Borehamwood	             			
tel : +44 208 214 3847
fax :+44 208 214 2325
HERTS WD6 1DT
 __________ http://www.one2one.co.uk _____________




NOTICE AND DISCLAIMER:
This email (including attachments) is confidential.  If you have received
this email in error please notify the sender immediately and delete this
email from your system without copying or disseminating it or placing any
reliance upon its contents.  We cannot accept liability for any breaches of
confidence arising through use of email.  Any opinions expressed in this
email (including attachments) are those of the author and do not necessarily
reflect our opinions.  We will not accept responsibility for any commitments
made by our employees outside the scope of our business.  We do not warrant
the accuracy or completeness of such information.





 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS