Tobel: Bearbeiten von Knoteninhalten beim Auslesen

Hallo

Ich hab folgendes Problem:
Wir haben juristische Texte in XML vorliegen, wie z.B.:

<absatz>
Die sich aus diesem Vertrag ergebenden Pflichten richten sich ebenfalls nach den Vorschriften des BGB über Kaufverträge (Besonderes Schuldrecht, §§ 433 ff. BGB), weil es bei einem formlosen Rechtsgeschäft wie dem Kauf beweglicher Sachen zunächst unerheblich ist, ob ein Kauf per Internet oder auf sonstigem Wege getätigt wird.
</absatz>

Nun wird der Text per XSL in HTML transferiert, z.B. mit:

<xsl:template match="absatz">

xsl:apply-templates/

</xsl:template>

Nun kommt es aber zu unschönen Unbrüchen was z.B. die zitierten Paragraphen angeht. Im obigen Beispiel wäre das:

...Schuldrecht, $$
433 ff. BGB...

Gibt es eine Möglichkeit den Text nach dem Auslesen (vom XML Dokument) und vor dem Zurückschreiben (ins HTML Dokument) mit Funktionen zu bearbeiten?

Gruß,

Tobel

  1. Hallo,

    Nun kommt es aber zu unschönen Unbrüchen was z.B. die zitierten Paragraphen angeht. Im obigen Beispiel wäre das:

    ...Schuldrecht, $$
    433 ff. BGB...

    Gibt es eine Möglichkeit den Text nach dem Auslesen (vom XML Dokument) und vor dem Zurückschreiben (ins HTML Dokument) mit Funktionen zu bearbeiten?

    Ich kann Deinen <absatz>...</absatz> problemlos ohne Umbrueche in einen HTML-Absatz <p>...</p> transformieren. Offenbar ist der originale XML-Content anders aufgebaut.

    Zeige doch mal, was <apply-templates/> wirklich macht.

    BTW: XPath bietet auch Zeichenkettenfunktionen wie substring(), substring-before(), substring-after(), string-length() usw., die sich bei Bedarf anwenden lassen -- einen Bedarf sehe ich aber noch nicht.

    MfG, Thomas

    1. Ich kann Deinen <absatz>...</absatz> problemlos ohne Umbrueche in einen HTML-Absatz <p>...</p> transformieren. Offenbar ist der originale XML-Content anders aufgebaut.

      Das Problem liegt darin, dass die Stelle "$$ 433 ff. BGB" auch bei Änderung der Fenstergröße nicht umgebrochen werden soll. Es müssten im Prinzip alle Leerzeichen durch nbsp ersetzt werden.

      Zeige doch mal, was <apply-templates/> wirklich macht.

      Wie wirklich macht? Eigentlich wird nur der Test ausgelesen.

      BTW: XPath bietet auch Zeichenkettenfunktionen wie substring(), substring-before(), substring-after(), string-length() usw., die sich bei Bedarf anwenden lassen -- einen Bedarf sehe ich aber noch nicht.

      Es kann vorkommen, dass im <absatz> Element noch weitere Elemente vorkommen, wie z.B. <style typ="fett"> hier steht fetter Text <style>.

      1. Hallo,

        Das Problem liegt darin, dass die Stelle "$$ 433 ff. BGB" auch bei Änderung der Fenstergröße nicht umgebrochen werden soll. Es müssten im Prinzip alle Leerzeichen durch nbsp ersetzt werden.

        Das kam im ersten Posting fuer mich nicht so rueber ...

        Es kann vorkommen, dass im <absatz> Element noch weitere Elemente vorkommen, wie z.B. <style typ="fett"> hier steht fetter Text <style>.

        Unter http://www.dpawson.co.uk/xsl/sect2/sect21.html gibt es viele XSLT-Rezepte, schau mal unter "Replace" und "Strings" nach.

        Verwende fuer das &nbsp; die Form &#160; im XSL-Code.

        MfG, Thomas

        1. Ich werde da mal schauen. Danke für deine Hilfe, auch wenn ich mich nicht immer klar ausgedrückt habe. ;-)