frank: HTML in Verbindung mit XML und XSL

hallo!
Ich habe folgendes Problem: ich habe ein HTML-Dokument, welches als einzelner
String in einer Datenbank abgelegt ist. Dieser String soll nun (abgelegt in einem
XML-Tag) im XSL-Stylesheet serverseitig so verarbeitet werden, daß die
eingeschlossenen HTML-Tags auch dargestellt werden. (keine iframes oder layers)
Kann man dieses Problem mit Javascipt lösen (serverseitig) oder anders?
Wenn ja, wie?
Danke
Gruß
frank.

  1. Grüssi,

    Ich habe folgendes Problem: ich habe ein HTML-Dokument, welches als einzelner
    String in einer Datenbank abgelegt ist. Dieser String soll nun (abgelegt in einem
    XML-Tag) im XSL-Stylesheet serverseitig so verarbeitet werden, daß die
    eingeschlossenen HTML-Tags auch dargestellt werden.

    Das wars wohl was Thomas meinte, als er weiter unten sagte: "es kann manchmal notwendig sein, den source-treee oder auch nur teile davon in eine xsl datei hineinzukopieren und dann erst weitere arbeitsschritte zu machen." ;-)

    <xsl:copy-of select="node()"/>

    <?m=135809&t=25912>

    lg bernhard

    1. Grüssi,

      Ich habe folgendes Problem: ich habe ein HTML-Dokument, welches als einzelner
      String in einer Datenbank abgelegt ist. Dieser String soll nun (abgelegt in einem
      XML-Tag) im XSL-Stylesheet serverseitig so verarbeitet werden, daß die
      eingeschlossenen HTML-Tags auch dargestellt werden.

      Das wars wohl was Thomas meinte, als er weiter unten sagte: "es kann manchmal notwendig sein, den source-treee oder auch nur teile davon in eine xsl datei hineinzukopieren und dann erst weitere arbeitsschritte zu machen." ;-)

      <xsl:copy-of select="node()"/>

      <?m=135809&t=25912>

      lg bernhard

      serwas,
      danke fuer die Rueckmeldung,
      mit <xsl:copy-of.... wird der String als normaler Text ausgegeben und nicht
      als durch die im String eingeschlossenen HTML-Tags formatiertes HTML-Dokument.
      z.B.: <b>hallo</b> soll auch bold ausgegeben werden und nicht wieder als
      "<b>hallo</b>"

      gruesse
      frank.

      1. Hallo frank,

        mit <xsl:copy-of.... wird der String als normaler Text ausgegeben und nicht
        als durch die im String eingeschlossenen HTML-Tags formatiertes HTML-Dokument.
        z.B.: <b>hallo</b> soll auch bold ausgegeben werden und nicht wieder als
        "<b>hallo</b>"

        HTML und XML ist Text. Also was soll sonst ausgegeben werden als Text, der Markup (HTML-Tags) und Inhalt enthält. Die Interpretation des Markup ist nicht Sache des XSLT-Prozessors, sondern Deiner Anwendung - im Falle von HTML idealerweise ein Browser.

        Gruß
        Franz

      2. Grüssi,

        mit <xsl:copy-of.... wird der String als normaler Text ausgegeben und nicht
        als durch die im String eingeschlossenen HTML-Tags formatiertes HTML-Dokument.
        z.B.: <b>hallo</b> soll auch bold ausgegeben werden und nicht wieder als
        "<b>hallo</b>"

        Wieso? Der Node wird komplett in das Result-Dokument kopiert, und wenn die Transformation dann fertig ist, dieser an den Browser geschickt und ausgegeben. Hast du's schon probiert? Ich hab nämlich grad keinen Server auf dem ichs ausprobieren könnte, daher leg ich auch meine Hand nicht dafür ins Feuer ;-)

        Aber normalerweise müsste er die Knoten so wie sie sind hineinschreiben. Ohne Maskierungen, und wenn ein < im XSL nicht maskiert (<) ist, dann wird es als MarkUp gesehen, dachte ich zumindest immer ;-)

        lg bernhard

      3. hallo!

        danke fuer die Rueckmeldung,
        mit <xsl:copy-of.... wird der String als normaler Text ausgegeben und nicht
        als durch die im String eingeschlossenen HTML-Tags formatiertes HTML-Dokument.
        z.B.: <b>hallo</b> soll auch bold ausgegeben werden und nicht wieder als
        "<b>hallo</b>"

        das geht z.B. so:

        <xsl:template match="CODE">
        <xsl:copy-of select="node()"/>
        </xsl:template>

        im <CODE></CODE> ist dann dein ganzes HTML drinn (mal ohne html)

        funktionierte bei mir problemlos.
        aber! dein HTML muss xhtml (also xml konform) sein!

        Grüße
        thomas

        1. » <xsl:template match="CODE">

          <xsl:copy-of select="node()"/>
          </xsl:template>

          im <CODE></CODE> ist dann dein ganzes HTML drinn (mal ohne html)

          funktionierte bei mir problemlos.
          aber! dein HTML muss xhtml (also xml konform) sein!

          Grüße
          thomas

          hallo thomas!

          mit "copy-of select" funktioniert´s zwar wenn die HTML-Code zwischen <CODE></CODE> steht, aber nicht wenn der HTML-Code aus einer Datenbank mittels xsp:expr importiert wird.
          z.B.:
          in XML-File
          <lebenslauf_de>xsp:exprrs1.getString("deutsch")</xsp:expr></lebenslauf_de>

          in XSL-File
          <xsl:template match="//lebenslauf_de">
           <xsl:copy-of select="node()"/>
          </xsl:template>

          Grüße
          frank.

          1. hallo frank,

            mit "copy-of select" funktioniert´s zwar wenn die HTML-Code zwischen <CODE></CODE> steht, aber nicht wenn der HTML-Code aus einer Datenbank mittels xsp:expr importiert wird.
            z.B.:
            in XML-File
            <lebenslauf_de>xsp:exprrs1.getString("deutsch")</xsp:expr></lebenslauf_de>

            da fällt mir nur noch ein, dass du versuchen könntest das ergebnis der db-abfrage in eine wariable schreiben:
            <xsl:variable name="lebenslauf_de">
            xsp:exprrs1.getString("deutsch")</xsp:expr>
            </xsl:variable>

            dann wo es gebraucht wird per
            <xsl:value-of select="$lebenslauf_de" />
            darauf zugreifen.

            so weit die theorie, asprobieren konnte ich es nicht.

            grüße
            thomas