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]

Reply via email to