xsl-list
[Top] [All Lists]

Re: How to combine consecutive input nodes into one output node?

2004-12-06 12:59:31
Check the following grouping resources:

Jeni Tennison's site: http://www.jenitennison.com/
Dave Pawson's FAQ: http://www.dpawson.co.uk/xsl/sect2/sect21.html

In Dave's FAQ, check both grouping and flat file transformation.

If you want to throw a bigger XML snippet and your shot at an XSL 
transformation at the list, you'll probably get some help that way, too. 
What you've included here doesn't show much. For example, depending on the 
tags that contain the content you've shown, your problem may be as simple 
changing how the parent element is handled. As it is, I can't see enough 
to be any help (not that I'm a heavy hitter on the list anyway - probably 
the best thing I can do is send you to those resources).

Jay Bryant
Bryant Communication Services




Gerald Wharney <geraldwharney(_at_)yahoo(_dot_)co(_dot_)uk> 
12/06/2004 12:09 PM
Please respond to
xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com


To
xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
cc

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






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

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--




--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



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