Frank Spangenberg: Variable und String mit "xsl:if" vergleichen

Beitrag lesen

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