Rondra: Highlighting funzt nicht über Server

Hallo leute,

ich habe eine XML, die ich mit XSL umwandle in HTML.
Für die Transformation setze ich XALAN ein.

MEINE XML:
<doc>
<field>
 <att> Das ist <rot>ein roter </rot> Text! </att>
 <att> Das ist <rot>ein roter </rot> Text! </att>
</field>
</doc>

MEINE XSL:
<xsl:template match="/">
 <html>
 <head>
 </head>
 <body>
  <xsl:for-each select="doc/field/att">
    <xsl:apply-templates /><br/>
   </xsl:for-each>
 </body>
 </html>
</xsl:template>

<xsl:template match="att">
  <xsl:apply-templates />
 </xsl:template>

<xsl:template match="rot">
 <i style="color:red">
  <xsl:value-of select="." />
 </i>
</xsl:template>

Somit soll der Text, der mit den <rot> gekennzeichnet ist, auch so angezeigt werden.
Das Problem:
Wenn ich meine XMLs über die Kommandozeile umwandle in HTML , wird das Highlighting von dem rot markierten Text perfekt angezeigt!
SO gehts:
java org.apache.xalan.xslt.Process -IN "c:\test\XML\high.xml" -XSL "c:\test\XSL\high.xsl" -out "c:\test\high.html"

AAABBER: Wenn ich meine Webapp über JBOSS und TOMCAT laufen lasse, will das highlighting zum verrecken nciht funzen! (Verzeiht meine Ausdrucksweise, bin total am Ende *schluchz*) . Hat jemand vielleicht eine Idee warum es über den Webserver nicht highlighten will? Gibts es da irgendwelche Einschränkungen vielleicht?

VIELEN DANK !!

Rondra

  1. Hi,

    AAABBER: Wenn ich meine Webapp über JBOSS und TOMCAT laufen lasse, will das highlighting zum verrecken nciht funzen! (Verzeiht meine Ausdrucksweise, bin total am Ende *schluchz*) . Hat jemand vielleicht eine Idee warum es über den Webserver nicht highlighten will? Gibts es da irgendwelche Einschränkungen vielleicht?

    Was kommt denn tatsächlich beim Browser an?

    cu,
    Andreas

    --
    MudGuard? Siehe http://www.Mud-Guard.de/
    1. Hi Andreas,

      Der Browser zeigt den gesamten Text mit den highlighting-tags an.
      SO:

      Das ist <rot>ein roter </rot> Text!
      Das ist <rot>ein roter </rot> Text!

      lg
      Rondra

      Hi,

      AAABBER: Wenn ich meine Webapp über JBOSS und TOMCAT laufen lasse, will das highlighting zum verrecken nciht funzen! (Verzeiht meine Ausdrucksweise, bin total am Ende *schluchz*) . Hat jemand vielleicht eine Idee warum es über den Webserver nicht highlighten will? Gibts es da irgendwelche Einschränkungen vielleicht?

      Was kommt denn tatsächlich beim Browser an?

      cu,
      Andreas

      1. Hallo,

        Der Browser zeigt den gesamten Text mit den highlighting-tags an.
        SO:

        Das ist <rot>ein roter </rot> Text!
        Das ist <rot>ein roter </rot> Text!

        Versuche mal nach <body> folgendes einzufügen:
         <h1><xsl:value-of select="system-property('xsl:vendor')" /></h1>
        und zu sehen, was bei der serverseitigen Umwandlung dabei rauskommt.
        Klingt nämlich fast so, als wäre kein XSLT-Prozessor involviert.

        Grüße
        Thomas

        1. Hallo,

          es wird "Apache Software Foundation"
          ausgeworfen..

          lg
          Rondra

          1. Hallo,

            es wird "Apache Software Foundation"
            ausgeworfen..

            Dann ist Xalan doch im Spiel.
            Weiss du welche Version du davon hast?
            Ist dein Stylesheet sonst korrekt? Keine andere Templates die sich überschneiden, korrekte XSL-Version angegeben, etc. etc.?
            Füge mal ein  <xsl:output method="html" indent="yes"/>  in deinem XSL ein.

            Kommt wirklich nur das bei den Browser an wenn du den Quelltext der Seite ansiehst?
            -------
            Das ist <rot>ein roter </rot> Text!
            Das ist <rot>ein roter </rot> Text!
            --------

            Also keine sonstige Elemente <body, <html> ?

            Grüße
            Thomas

            1. Hallo!

              Weiss du welche Version du davon hast?

              Ich habe XALAN 2.5.1 .

              Ist dein Stylesheet sonst korrekt? Keine andere Templates die sich überschneiden, korrekte XSL-Version angegeben, etc. etc.?

              Da ist alles korrekt, die anderen Formatierungen funtionieren problemlos auf der Seite. (Beispiel war  stark vereinfacht).  Nur dieses unterelement <rot> wird nicht gemäss des stylesheets formatiert angezeigt.

              Füge mal ein  <xsl:output method="html" indent="yes"/>  in deinem XSL ein.

              Leider keine Veränderung...

              Kommt wirklich nur das bei den Browser an wenn du den Quelltext der Seite ansiehst?

              Sonst wird das HTML korrekt mit allen HTML Tags erzeugt. die HTML hab ich mir auch genauer angesehen. Alles korrekt, bis auf die zusäzlichen Tags <rot> , die anscheinend überhaupt nicht verstanden werden...

              *seufz*

              lieben Gruss
              Rondra

              1. Hallo,

                Sonst wird das HTML korrekt mit allen HTML Tags erzeugt. die HTML hab ich mir auch genauer angesehen. Alles korrekt, bis auf die zusäzlichen Tags <rot> , die anscheinend überhaupt nicht verstanden werden...

                Sehr merkwürdig.
                Ich kann dir nur noch raten, dass du versuchst das Problem mit diesem Element zu begrenzen, z.B.

                <xsl:template match="att">
                  <xsl:apply-templates select="rot" />
                 </xsl:template>

                Es ist zwar schwert vorstellbat, aber nicht unmöglich, dass "rot" irgenwo einen Schüsselwort ist und deshalb von einer beteiligten Applikation ignoriert wird. (Ich hatte mal das Problem mit <config>)

                Ändere mal das <rot> im XML auf was anderes z.B. <redcolor> und auch in xsl dann:
                <xsl:template match="redcolor">
                 <i style="color:red">
                  <xsl:value-of select="." />
                 </i>
                </xsl:template>

                Sollte das der Fall sein, ist irgndwo eine Klasse oder eine JSP falsch programmiert.

                Grüße
                Thomas

                1. Danke für Deine Mühe Thomas, ich versuchs mal..

                  liebe Grüsse

                  1. Hallo ,

                    ich bins wieder! ;)
                    Leider hängt es nicht mit dem Wort zusammen. Ich habe mir den XML-Output , der vom Server kommt, mal als XML-Struktur im IE anzeigen lassen und erkannt, dass das Elemen <rot> im Textfluss verloren geht.

                    Der IE markiert XML-Tags mit rotbrauner Schrift, die spitzen Klammern der Tags macht er blau. Nur mein <rot> Tag verschwindet im schwarzen Textfluss. Daraus schliesse ich, dass mein Tag gar nicht als XML-Tag erkannt wird. Wie ich das jetzt löse ist mir noch nich ganz klar....

                    *seufznochmal* Danke für jede Hilfe!

                    lG
                    Rondra

                    1. Hallo,

                      ich bins wieder! ;)
                      Leider hängt es nicht mit dem Wort zusammen. Ich habe mir den XML-Output , der vom Server kommt, mal als XML-Struktur im IE anzeigen lassen und erkannt, dass das Elemen <rot> im Textfluss verloren geht.

                      Der IE markiert XML-Tags mit rotbrauner Schrift, die spitzen Klammern der Tags macht er blau. Nur mein <rot> Tag verschwindet im schwarzen Textfluss. Daraus schliesse ich, dass mein Tag gar nicht als XML-Tag erkannt wird. Wie ich das jetzt löse ist mir noch nich ganz klar....

                      Hmm ... ich bin mir nicht sicher. Hast du versucht den Elementnamen zu ändern?
                      Aber zumindest weiss du jetzt dass etwas am Server mit deinem XML passiert (und zwar entweder noch vor oder beim Parser der XML-Datei), denn wenn das Element <rot> nicht als Element sondern am als Text ankommt, kann ihn der XSL-Prozessor auch nicht mehr als Element behandeln.

                      Leider fällt mir dazu auch nichts mehr ein.

                      Grüße
                      Thomas