Wolfi: Text aus XML ausgeben !

Hi !

Ich schreibe einen Text aus
einem HTML-Textarea den ich
an eine JSP-Datei schicke in
eine xml Datei. Der Text wird
im Textarea automatisch
umgebrochen und sieht dann
so aus wie der eben geschriebene.

In der xml-Datei steht er dann  folgendermaßen.
<inhalt>
Hi !

Ich schreibe einen Text´....... (alles in einer Zeile)
</inhalt>

Nun transformiere ich ihn mittels xsl-Stylesheets wieder nach HTML.

<table width="400">
       <tr>
         <td>
           <xsl:value-of select="inhalt"/>
         </td>
        </tr>
       </table>

In HTML sieht er dann so aus

Hi ! Ich schreibe einen Text aus
einen HTML-Textarea ..........

Setze ich nun das <pre>-Tag davor

....
<pre><xsl:value-of select="inhalt"/></pre>
....

dann sieht der Text folgendermaßen aus

Hi !

Ich schreibe einen Text´....... (alles in einer Zeile)

Ich will aber das der Text so ausgegeben wird wie er eingegeben wurde das heißt mit den Zeilenumbrüchen wo welche gemacht wurden, sowie automatischen Zeilenumbrüchen wo welche notwendig sind.
Wäre dankbar wenn mir jemand weiterhelfen könnte.

  1. Hallo,

    hm, eine Lösung habe ich auch nicht für das Problem, aber es ist kein XML/XSLT-Problem. So wie dus beschrieben hast, wird der Text nach der Anwendung Deines Stylesheets ausgegeben, wie er in die XML-Datei geschrieben wurde.

    Das eigentliche Problem ist doch, wie die automatischen Zeilenumbrüche im Input-Feld an die JSP übergeben werden und ob man dort "Markierungen" setzen kann. Die dann auch beim Schreiben in die XML-Datei die automatischen Zeilenumbrüche sichtbar machen. Denn dort sind Sie ja bei Dir schon verschwunden. Auch XSLT kann Sie dann nicht wieder sichtbar machen.

    Gruß
    Franz

    1. Hallo,

      hm, eine Lösung habe ich auch nicht für das Problem, aber es ist kein XML/XSLT-Problem. So wie dus beschrieben hast, wird der Text nach der Anwendung Deines Stylesheets ausgegeben, wie er in die XML-Datei geschrieben wurde.

      Das eigentliche Problem ist doch, wie die automatischen Zeilenumbrüche im Input-Feld an die JSP übergeben werden und ob man dort "Markierungen" setzen kann. Die dann auch beim Schreiben in die XML-Datei die automatischen Zeilenumbrüche sichtbar machen. Denn dort sind Sie ja bei Dir schon verschwunden. Auch XSLT kann Sie dann nicht wieder sichtbar machen.

      Das Problem ist dass mir aus html heraus die automatischen Zeilenumbrüche nicht übergeben werden, habe es extra mit der Methode GET probiert um zu sehen was in der Adressleiste übermittelt wird. Diese dann in JSP bzw. einer JavaBean mit "/n" zu ersetzen sofern dies überhaupt notwendig ist, ist nicht das Problem

      1. Hallo,

        Das Problem ist dass mir aus html heraus die automatischen Zeilenumbrüche nicht übergeben werden, habe es extra mit der Methode GET probiert um zu sehen was in der Adressleiste übermittelt wird. Diese dann in JSP bzw. einer JavaBean mit "/n" zu ersetzen sofern dies überhaupt notwendig ist, ist nicht das Problem

        Hm, was nicht in irgendeiner Form an den Server übermittelt wird, kann auch nicht ersetzt werden. Wenn also die Zeilenumbrüche nicht übermittelt werden, dann kannst du sie auch nicht ersetzen. Wenn doch, dann ersetze sie. Leeraum-Symbole in XML sind:

        &#x09; &#09; horizontaler Tabulator (horizontal Tab) (HT)
        &#x0A; &#10; Zeilenvorschub (Line-feed) (LF)
        &#x0D; &#13; Wagenrücklauf (Carriage-return) (CR)
        &#x20; &#20; Leerzeichen (Space character)

        Für die Kennzeichnung des Zeilenendes in XML wird Standardmäßig die Unix-Variante genommen, also LF (&#x0A;). Dieser Leerraum sollte dann erhalten bleiben.

        Gruß
        Franz

  2. Moin!

    Ich will aber das der Text so ausgegeben wird wie er eingegeben wurde das heißt mit den Zeilenumbrüchen wo welche gemacht wurden, sowie automatischen Zeilenumbrüchen wo welche notwendig sind.

    Das Problem kommt mir seltsam bekannt vor. Wurde das nicht in den letzten Tagen schon x-mal diskutiert?

    Egal:

    Die Lösung deines Problems lautet: Forme Zeilenumbrüche in <br> um, und laß den restlichen Text einfach so, wie er ist. Dann wird der Browser dort eine neue Zeile beginnen, wo es durch Drücken von Return explizit gefordert wurde, und automatische Zeilenumbrüche, wo die Zeile für den verfügbaren Platz zu lang wird.

    Textareas übermitteln Zeilenumbrüche nur dann, wenn sie explizit per Return eingegeben wurden.

    Du solltest mal vom gewünschten Ergebnis her denken: Das was du beschreibst, sieht in meiner Vorstellung so aus:

    <td>Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.<br><br>
    Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.</td>

    Der Text wird automatisch umgebrochen, und an einer Stelle mittendrin wurde zweimal Return gedrückt, um eine Leerzeile in den Text zu bekommen.

    Und das kann man mit einer Textarea und nachträglicher Umformung prima hinkriegen. Egal, ob mit Datenbank oder XML. Ist nur die Frage: Wie?

    - Sven Rautenberg

  3. Moin!

    Ich seh' gerade, meine Antworten sind von dir nicht gewünscht (</e/?m=31199&t=5522>). Dann würde ich vorschlagen: Mach deinen Scheiß doch alleine!

    - Sven Rautenberg

    1. Moin!

      Ich seh' gerade, meine Antworten sind von dir nicht gewünscht (</e/?m=31199&t=5522>). Dann würde ich vorschlagen: Mach deinen Scheiß doch alleine!

      P.S. dein Link funktioniert nicht, vielleicht kann dir im Forum jemand weiterhelfen, aber Selfhtml wäre auch ne Möglichkeit. Und Deine Wortwahl war auch schon mal besser, doch diese Direktheit habe ich bis jetzt vermißt. Mach weiter so

      Dein FAN WOLFI

      1. Hallo,

        Ich seh' gerade, meine Antworten sind von dir nicht gewünscht (</e/?m=31199&t=5522>). Dann würde ich vorschlagen: Mach deinen Scheiß doch alleine!

        P.S. dein Link funktioniert nicht, vielleicht kann dir im Forum jemand weiterhelfen, aber Selfhtml wäre auch ne Möglichkeit.

        Das ist der gemeinte Link:
        http://forum.de.selfhtml.org/?m=31199&t=5522

        Eigentlich willst/wolltest Du doch Hilfe. Warum nimmst Du die Hinweise nicht entgegen, probierst aus oder akzeptierst, dass es auf die Art wie Du es haben willst evtl. keine Lösung gibt? Oder du sagst, was du bereits ausprobiert hast, was nicht klappt und...naj, wie eben das Spiel so läuft bei jeder vernünftigen Diskussion oder Problemeinkreisung.

        Und Deine Wortwahl war auch schon mal besser, doch diese Direktheit habe ich bis jetzt vermißt.

        So ganz unbegründet finde ich Svens Wortwahl nicht, wenn man liest, was du so auf seine Antwort hingelegt hast. Aber wenn du auf Direktheit stehst, dann bringts Dich sicher nicht um, sondern macht Dich nur noch härter.

        Gruß
        Franz