xsl-list
[Top] [All Lists]

Re: Making flat files strucutred hierarchically

2004-10-06 08:27:52
Hi Roman,
  Please try this XSL...

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>

<xsl:output method="xml" version="1.0"
encoding="UTF-8" indent="yes"/>
        
<xsl:template match="/root">
  <root>
    <xsl:for-each select="title">
      <layer>
        <title><xsl:value-of select="." /></title>
        <xsl:variable name="title-id"
select="generate-id()" />
        <xsl:for-each
select="following-sibling::para[generate-id(preceding-sibling::title[1])
= $title-id]">
          <para><xsl:value-of select="." /></para>
        </xsl:for-each>
      </layer>
    </xsl:for-each>
  </root>
</xsl:template>
        
</xsl:stylesheet>

Regards,
Mukul

--- Huditsch Roman <Roman(_dot_)Huditsch(_at_)lexisnexis(_dot_)at>
wrote:

Hi,

 

I am in search for a comfortable way for sructuring
flat files.

Please take this source document as an example:

 

<?xml versio="1.0"?>

<root>

   <title>Titel 1</title>

  <para>Para 1</para>

  <para>Para 2</para>

  <para>Para 3</para>

  <title>Title 2</title>

  <para>Para 1</para>

  <para>Para 2</para>

  <title>Title 3</title>

  <para>Para 1</para>

  <para>Para 2</para>

</root>

 

After my XSLT 1,0 transformation the output should
look like

 

<?xml versio="1.0"?>

<root>

   <layer>

     <title>Titel 1</title>

     <para>Para 1</para>

     <para>Para 2</para>

     <para>Para 3</para>

  </layer>

  <layer>

    <title>Title 2</title>

    <para>Para 1</para>

    <para>Para 2</para>

  </layer>

  <layer>  

    <title>Title 3</title>

    <para>Para 1</para>

    <para>Para 2</para>

  </layer>

</root>

 

Is there any way to do this? I don't know how to
define "take all "para" nodes up to the next "title"
element.....

Can you help me?

Thank you very much in advance.

 

Wbr,

Roman



                
__________________________________
Do you Yahoo!?
Y! Messenger - Communicate in real time. Download now. 
http://messenger.yahoo.com


<Prev in Thread] Current Thread [Next in Thread>