Ok, vielen Dank.
Ich habe das ganze jetzt umgebaut, ohne Parameter/Variablen...
Die XML-Datei sieht ungefähr so aus:
...
<text:p text:style-name="h1">bla</text:p>
<text:p text:style-name="p">bla</text:p>
<text:p text:style-name="p">bla</text:p>
<text:p text:style-name="h1">bla</text:p>
<text:p text:style-name="h2">bla</text:p>
<text:p text:style-name="h3">bla</text:p>
<text:p text:style-name="p">bla</text:p>
<text:p text:style-name="p">bla</text:p>
<text:p text:style-name="p">bla</text:p>
<text:p text:style-name="h2">bla</text:p>
<text:p text:style-name="h3">bla</text:p>
<text:p text:style-name="p">bla</text:p>
<text:p text:style-name="p">bla</text:p>
<text:p text:style-name="p">bla</text:p>
<text:p text:style-name="h2">bla</text:p>
<text:p text:style-name="h3">bla</text:p>
...
Die Attribute werden zu Tags, also 'style-name="h1"'
zu <h1>bla</h1>.
Nun möchte ich in der Ziel-XML-Datei vor jedem 'style-name="h2"'
(also <h2>bla</h2>) das letzte vorangegangene ‘style-name="h1"‘
(also <h1>bla</h1>) einfügen, so dass folgendes entsteht:
<h1>bla_h1-1</h1> *Überschrift 1-1*
<p>bla_p-1</p>
...
<h1>bla_h1-2</h1> *Überschrift 1-2*
<h2>bla_h2-1</h2>
<h3>bla_h3-1</h3>
...
<h1>bla_h1-2</h1> *Überschrift 1-2*
<h2>bla_h2-2</h2>
<h3>bla_h3-2</h3>
Durch xsl:if bei einem 'style-name="h2"' rufe ich also
den Wert des letzten vorangegangenen ‘style-name="h1"‘ auf:
preceding-sibling::text:p[position()=1][@text:style-name = 'h1']
Leider funktioniert das nicht...
Mit freundlichem Gruß
Frank Spangenberg