[xsl] How to combine consecutive input nodes into one output node?

Subject: [xsl] How to combine consecutive input nodes into one output node?
From: Gerald Wharney <geraldwharney@xxxxxxxxxxx>
Date: Mon, 6 Dec 2004 18:09:28 +0000 (GMT)
Hi

I've only just started working with XML and XSL. What
I'm trying to do is to write a simple XSLT that will
change an Openoffice Writer document into fairly
presentable (X)HTML. I've accomplished most of what I
need to do except the following:

What I need to know is how to transform a bunch of
consecutive similar nodes into a single output node.

For example:

< ... >
<text:p text:style-name="Listing">Line 1</text:p>
<text:p text:style-name="Listing">Line 2</text:p>
<text:p text:style-name="Listing"><text:s
text:c="4"/>Line 3 (indented)</text:p>
<text:p text:style-name="Listing"><text:s
text:c="4"/>Line 4 (indented)</text:p>
<text:p text:style-name="Listing">Line 5</text:p>
< ... >

Here I need to combine all the _consecutive_ <text:p>
nodes which have the attribute "text:style-name" equal
to "Listing" so that the output looks something like:

<p class="Listing>
Line 1
Line 2
    Line 3 (indented)
    Line 4 (indented)
Line 5
</p>

Note that I need to take into account the <text:s>
nodes which provide the spacing and are interspersed
amongst the <text:p> nodes.

Any code, pointers to FAQs/manuals, or even keywords
to Google for will be much appreciated.

tia

=====
-- 
G W (no bush)


		
___________________________________________________________ 
Moving house? Beach bar in Thailand? New Wardrobe? Win #10k with Yahoo! Mail to make your dream a reality. 
Get Yahoo! Mail www.yahoo.co.uk/10k

Current Thread