juls_pro_37: XSLT 1.0 prüfen, ob mehr als 1 Leerzeichen

Hallo,

ist es möglich, mittels XSLT 1.0 zu prüfen, ob in einem bestimmten Node mehr als 1 Leerzeichen vorkommen, falls ja, diese zu entfernen und nur 1 Leerzeichen beizubehalten?

Beispiel:

falsch: Das ist ein         Test

richtig: Das ist ein Test

LG Julian

  1. Hi,

    ist es möglich, mittels XSLT 1.0 zu prüfen, ob in einem bestimmten Node mehr als 1 Leerzeichen vorkommen, falls ja, diese zu entfernen und nur 1 Leerzeichen beizubehalten?

    Meinst Du aufeinanderfolgende? Denn das, was Du als "richtig" bezeichnest, enthält auch mehrere Leerzeichen.

    Beispiel:

    falsch: Das ist ein        Test
    richtig: Das ist ein Test
    

    in XSLT 2 gibt's ein Regex-fähiges replace, das müßte man dann halt mit " +" -> " " füttern.

    in XSLT 1 gibt's das m.W. nicht - da könnte man evtl. was rekursives machen - solange zwei aufeinanderfolgende Leerzeichen vorhanden sind, diese durch ein Leerzeichen ersetzen.

    cu,
    Andreas a/k/a MudGuard

    1. Meinst Du aufeinanderfolgende?

      Korrekt und es betrifft XSLT1.0

      Danke vorab.

  2. Hallo Julian,

    ist es möglich, mittels XSLT 1.0 zu prüfen, ob in einem bestimmten Node mehr als 1 Leerzeichen vorkommen, falls ja, diese zu entfernen und nur 1 Leerzeichen beizubehalten?

    Zm Entfernen von Leerraum dient normalize-space(). Dazu gehören neben mehrfachen Leerzeichen auch solche am Anfang oder Ende und weiterer White Space wie Tabs und Umbrüche.

    Prüfen könnte man mittels test="normalize-space(knotentext) != knotentext".

    Grüße,
    Thomas