Thank you all for your advice!
By pargraph mark I just meant the position in the text where the new paragraph
starts. In my example it is a <para type="NEW"> element. All other text goes to
the previous paragraph even if it is in a different notice element. And I
forgot to mention that I use XSLT 1.0 / libsxtl.
I will try to find a solution using your suggestion.
Regards
Kaarle
-----Original Message-----
From: Michael Kay [mailto:mike(_at_)saxonica(_dot_)com]
Sent: 4. tammikuuta 2006 17:06
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: RE: [xsl] Paragraphs in Word XML
This is a tough one but similar problems have been solved on this list before!
I think the design in outline is this: if you encounter a table that has a
break element within it, you need to apply a template/function that splits it
into two: everything before the break, and everything after the break; you then
apply the same processing recursively to "everything after the break" in case
there are multiple breaks.
The processing is a template rule that takes the break element as a parameter.
When processing an element that is an ancestor of the break element, create a
shallow copy of yourself containing deep copies of all your pre-break children;
then apply templates recursively to the child that's an ancestor of the break
element, then create a shallow copy of yourself containing deep copies of all
your post-break children.
Hope that makes sense, I don't have time to translate it into code!
Michael Kay
http://www.saxonica.com/
-----Original Message-----
From: Kaila Kaarle [mailto:Kaarle(_dot_)Kaila(_at_)nice(_dot_)fi]
Sent: 04 January 2006 13:52
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Paragraphs in Word XML
Hello,
I have an xml file containing the data for my genealogical report. It
contains table elements and section elements and within sections there
are person - relation and notices elements.
Notices elements contain notice elements with information such as
birth dates and places but also long texts about what the person did.
The text is divided into para elements and some of them must be
written into separate paragraps in the output.
Word XML requires that <body> element contains <p>
(paragraph) elements. When I use XSTL to create my document I would
usually transform one section in my XML into a <p> element in Word
XML. But if the text contains paragraph marks I need to fininsh the
current Word paragraph and start a new one (with a different style)
but I don't know if I can do that in XSLT.
I'll add an example at the end of this message of my xml.
My xml looks like this: All of it should go to one pargraph if the
<notice tag="NOTE"> would not contain the <para type="NEW"> element.
The rest of the text should go to the second paragraph.
How can I split the text in the example into two different elements on
output???
Regards
Kaarle
<tables>
<table number="1">
<section type="MAIN" gen="1">
<person sex="M" unitid="I1" source="1">
<name>
<givenname>Paavo</givenname>
<surname>Kaila</surname>
</name>
<notices>
<notice tag="BIRT" text="Syntynyt">
<date value="18840413">13.04.1884</date>
<place name="Vimpeli">Vimpeli</place>
</notice>
<notice tag="DEAT" text="Kuollut">
<place name="Lappeenranta">Lappeenranta</place>
</notice>
<notice tag="OCCU">
<para>Bonde</para>
<place name="Esse">Esse</place>
</notice>
<notice tag="NOTE">
<para>Paavo oli isäni isä. Hän meni Evan kanssa
naimisiin mutta oli hänellä pari kolme muutakin vaimoa. Heitä en ole
tavannut vaikka viimeinen kuoli vasta muutama vuiosi sitten.
</para>
<para type="NEW">Lisäsin tähän vielä tällaisen toisen
tekstikappaleen. Word-xml testi on nyt testattavana ja siinäkin
pitäisi saada kappaleet paikoilleen. Muuten homma ei oikein suju.
Myöskin olisi hyvä jos tämä jatkuisi useammalle riville. Ehkä se jo on
ohittanut ekan rivin loppusarakkeen.</para>
</notice>
<notice tag="PHOT">
<media name="P1R7.jpg" number="1">Tämä on Paavo</media>
</notice>
</notices>
<relation type="SPOU" number="1" source="2">
<event type="MARR">
<date value="1907">1907</date>
<place name="Tammerfors">Tammerfors</place>
</event>
<person sex="F" unitid="I2">
<name>
<givenname>Eva Charlotta</givenname>
<surname>Koskinen</surname>
</name>
<notices>
<notice tag="NAME">
<name>
<givenname>Eva Charlotta</givenname>
<surname>Kaila</surname>
</name>
</notice>
<notice tag="BIRT" text="Syntynyt" source="3">
<date value="18920422">22.04.1892</date>
<place name="Tammela">Tammela</place>
</notice>
<notice tag="DEAT" text="Kuollut">
<date value="19640406">06.04.1964</date>
<place name="Helsinki">Helsinki</place>
</notice>
</notices>
</person>
</relation>
</person>
</section>
</table>
</tables>
--~------------------------------------------------------------------
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>
--~--
--~------------------------------------------------------------------
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>
--~--