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