Hi Svante,
you might do the following:
[...]
Sorry, but the solution dont work.
with this example
<?xml version="1.0" encoding="ISO-8859-1"?>
<a>
<p style-name="Standard">Dies ist ein Text</p>
<p style-name="Standard"/>
<p style-name="listing">public class Test {</p>
<p style-name="listing"> // ...</p>
<p style-name="listing">}</p>
<p style-name="Standard"/>
<p style-name="Standard">noch eins</p>
<p style-name="listing">public class Test {</p>
<p style-name="listing"> // ...</p>
<p style-name="listing">}</p>
</a>
i get the result with your xsl-file.
<?xml version="1.0"?>
<x>
<p>Dies ist ein Text</p>
<p></p>
<listing>
<p>public class Test {</p>
<p> // ...</p>
</listing>
<p></p>
<p>noch eins</p>
</x>
but now i get a solution per email that works.
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="[EMAIL PROTECTED]'listing']">
<xsl:if
test="preceding-sibling::*[1][not(self::p)] or
preceding-sibling::*[1][self::[EMAIL PROTECTED] != current()/@style-name]]">
<xsl:element name="listing">
<xsl:apply-templates select="." mode="copy"/>
</xsl:element>
</xsl:if>
</xsl:template>
<xsl:template match="[EMAIL PROTECTED]'listing']" mode="copy">
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
<xsl:apply-templates
select="following-sibling::*[1][self::[EMAIL PROTECTED] =
current()/@style-name]]"
mode="copy"/>
</xsl:template>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
the result is:
<?xml version="1.0"?>
<a>
<p style-name="Standard">Dies ist ein Text</p>
<p style-name="Standard"/>
<listing>
<p>public class Test {</p>
<p> // ...</p>
<p>}</p>
</listing>
<p style-name="Standard"/>
<p style-name="Standard">noch eins</p>
<listing>
<p>public class Test {</p>
<p> // ...</p>
<p>}</p>
</listing>
</a>
Thank you
By
Michael
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]