Gerd: xsl:result-document und Sonderzeichen

Hallo,

ich habe ein Problem bei der Transformation von XML zu XML. Die generierten XML´s müssen Elemente der Form <!CDATA[[...]]> enthalten. Beim Erzeugen dieser habe ich versucht diese Elemente mit <xsl:text disable-output-escaping="yes">&lt;![CDATA[... zu erzeugen. Leider wird das disable-output-escaping ignoriert und somit &lt; ausgegeben anstatt <. Ich denke das Problem hängt damit zusammen das ich <xsl:result-document href="Net.xml" method="xml" indent="yes" encoding="iso-8859-1"> benutze, da es in einer älteren Version ohne mehrere Ausgabedokumente funktionierte.
Folgend ein Teil meiner XSL.

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:result-document href="PrNet3.xml" method="xml" indent="yes" encoding="iso-8859-1">
  <xsl:call-template name="sn"/>
</xsl:result-document>

<xsl:template name="sn">
 <xsl:text disable-output-escaping="yes">&lt;![CDATA[</xsl:text>
           <!-- weitere Anweisungen die dann in CDATA Element stehen       sollen -->
 <xsl:text disable-output-escaping="yes">]]&gt;</xsl:text>
</xsl:template>

Falls jemand ne Idee hat wie sich das Problem lösen lässt, würd ich  mich über ne Antwort freuen!

Gerd

  1. Was ergibt der Code bei dir (Unicode Zeichen benutzt)?

    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:result-document href="PrNet3.xml" method="xml" indent="yes" encoding="iso-8859-1">
    <xsl:call-template name="sn"/>
    </xsl:result-document>

    <xsl:template name="sn">
    <xsl:text disable-output-escaping="yes">&#60;![CDATA[</xsl:text>
              <!-- weitere Anweisungen die dann in CDATA Element        sollen -->
     <xsl:text disable-output-escaping="yes">]]&#62;</xsl:text>
    </xsl:template>

    Gruß,

    Holger

    1. Hallo,

      @Thomas: Transformiere mit XMLSpy.

      @Holger: Unicode Zeichen benutzen bewirkt leider keine Änderung.

      Wenn ich die erzeugten xml´s in nem Browser darstelle, setzt er die Entities richtig ein. Allerdings benötige ich sie als xml um sie dann in ein Programm zu laden. Meine Notlösung zur Zeit:transformieren, in Browseransicht darstellen, kopieren und in neues XML file einfügen.

      Gruß Gerd

      1. Kannst du vielleicht deine xml quelle gekürzt (auf das problem beschränkt) hier einstellen und das xsl-file. muss ja nur das grundkonzept sein. dann könnte man mal weiter schauen.

        Gruß,

        Holger

        Hallo,

        @Thomas: Transformiere mit XMLSpy.

        @Holger: Unicode Zeichen benutzen bewirkt leider keine Änderung.

        Wenn ich die erzeugten xml´s in nem Browser darstelle, setzt er die Entities richtig ein. Allerdings benötige ich sie als xml um sie dann in ein Programm zu laden. Meine Notlösung zur Zeit:transformieren, in Browseransicht darstellen, kopieren und in neues XML file einfügen.

        Gruß Gerd

        1. ... Hab es jetzt mit Saxon transformiert und da klappt es. Das reicht mir auch erstmal und da die Zeit drängt werd ich es so lassen. Danke nochmal für die Tips.

          Gerd

  2. Hallo,

    ich habe ein Problem bei der Transformation von XML zu XML. Die generierten XML´s müssen Elemente der Form <!CDATA[[...]]> enthalten. Beim Erzeugen dieser habe ich versucht diese Elemente mit <xsl:text disable-output-escaping="yes">&lt;![CDATA[... zu erzeugen. Leider wird das disable-output-escaping ignoriert

    Welcher XSLT-Prozessor?

    Grüße
    Thomas