Cedric,
One solution to your problem is to relate each 'paragraphe' element to the
'title' element to which it "belongs" using a key:
<xsl:key name="paras-by-title" match="element[(_at_)type='paragraphe']"
use="generate-id(preceding-sibling::element[(_at_)type='title][1])"/>
Then instead of selecting "following::element[(_at_)type='paragraphe']" in your
for-each, generate your output for your title, and then select the
paragraphs that belong to it using the key function:
select="key('paras-by-title', generate-id())"
which returns only paragraph elements that follow the title without any
intervening title elements (which would come in on the following or
following-sibling axes).
This method is described in the XSL FAQ under the heading "Flat file
transformation": http://www.dpawson.co.uk/xsl/sect2/flatfile.html
I hope that helps!
Wendell
At 10:57 AM 2/4/2003, you wrote:
Hi, I have the following XML:
<document xmlns:fo="http://www.w3.org/1999/XSL/Format">
<elements>
<element type="title" position="1">text1</element>
<element type="paragraphe" position="2">text2</element>
<element type="paragraphe" position="3">text3</element>
<element type="title" position="4">text4</element>
<element type="paragraphe" position="5">text5</element>
<element type="paragraphe" position="6">text6</element>
<element type="title" position="7">text7</element>
<element type="paragraphe" position="9">text9</element>
<element type="paragraphe" position="10">text10</element>
<element type="title" position="11">text11</element>
<element type="paragraphe" position="12">text12</element>
<element type="paragraphe" position="13">text13</element>
</elements>
</document>
[snip]
I want to have only the *first *following with the attribute Type = title
or with my test : <xsl:if test="./@position < following::element
[(_at_)type='title']/@position"> I have : <document
xmlns:fo="http://www.w3.org/1999/XSL/Format">
<element>
<group>
<title>text1</title>
<paragraphe>text2</paragraphe>
<paragraphe>text3</paragraphe>
<paragraphe>text5</paragraphe>
<paragraphe>text6</paragraphe>
<paragraphe>text9</paragraphe>
<paragraphe>text10</paragraphe>
</group>
</element>
...
What I want is only text2 and text 3, I don't want text5 --> text10 with
this title
Any Idea? I become nuts....
======================================================================
Wendell Piez
mailto:wapiez(_at_)mulberrytech(_dot_)com
Mulberry Technologies, Inc. http://www.mulberrytech.com
17 West Jefferson Street Direct Phone: 301/315-9635
Suite 207 Phone: 301/315-9631
Rockville, MD 20850 Fax: 301/315-8285
----------------------------------------------------------------------
Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list