Hallo Thomas,
vielen Danke für die Mühe!
Hier die endgültige Version:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" exclude-result-prefixes="text">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
<xsl:template match="/">
<root>
<document>
<xsl:for-each select="//text:h | //text:p">
xsl:choose
<xsl:when test="@text:style-name='h1'">
<h1>
<xsl:value-of select="."/>
</h1>
</xsl:when>
<xsl:when test="@text:style-name='h2'">
<xsl:if test="preceding-sibling::node()[1]/@text:style-name != 'h1'">
<h1>
<xsl:value-of select="preceding-sibling::node()[@text:style-name = 'h1'][1]"/>
</h1>
</xsl:if>
<h2>
<xsl:value-of select="."/>
</h2>
</xsl:when>
<xsl:when test="@text:style-name='h3'">
<h3>
<xsl:value-of select="."/>
</h3>
</xsl:when>
<xsl:when test="@text:style-name='p'">
<p>
<xsl:value-of select="." />
</p>
</xsl:when>
</xsl:choose>
</xsl:for-each>
</document>
</root>
</xsl:template>
</xsl:stylesheet>
Mit freundlichem Gruß
Frank Spangenberg