Andreas Gabor: zeilen umbruch und doppelte leerzeichen entfernen - whitespace

Hallo,

ich bin leicht am verzweifeln bei der Suche nach einer Moeglichkeit mit Javascript und DOM ueberfluessige leerzeichen zu entfernen und ebenso zeilenumbrueche innerhalb von text knoten in xml dokumenten. Zb:

<text>Hier is ein Text mit Zeilen
           umbruch und vielen             Leerzeichen</text>

Ich hatte mir auf Basis verschiedener seite eine solche funktion zusammengestellt:

  
  
  
cleanWhitespace: function (node) {  
var notWhitespace = new RegExp("\S");  
var doubleSpace = new RegExp("\s+$");  
 for (var x = 0; x < node.childNodes.length; x++) {  
 var childNode = node.childNodes[x];  
 if ((childNode.nodeType == 3) &&(! notWhitespace.test(childNode.nodeValue))) {  
node.removeChild(node.childNodes[x]);  
x--  
}else if ((childNode.nodeType == 3) && (doubleSpace.test(childNode.nodeValue))) {  
var textNode = childNode.nodeValue.replace(doubleSpace, " ");  
node.replaceChild(textNode, node.childNodes[x]);  
}  
if (childNode.nodeType == 1) {  
      cleanWhitespace(childNode);  
   }  
  }  
},  

Diese Funktion scheint whitespaces zu entfernen, der xml code bleibt aber weiterhin in dieser Form und wir nicht wie gewuenscht umgewandelt in:

<text>Hier is ein Text mit Zeilenumbruch und vielen Leerzeichen</text>

Kann mit jemand einen Tipp geben? Ich muss eine Loesung finden, die innerhalb von DOM ablaufen kann und auf Parser oder Serializer verzichtet, also keine Doc --> String --> Doc

Gruss, Andreas

  1. Hi,

    Diese Funktion scheint whitespaces zu entfernen, der xml code bleibt aber weiterhin in dieser Form und wir nicht wie gewuenscht umgewandelt

    Natürlich wird der XML-Code nicht umgewandelt - weil du mit JavaScript auf dem DOM arbeitest.

    Kann mit jemand einen Tipp geben? Ich muss eine Loesung finden, die innerhalb von DOM ablaufen kann und auf Parser oder Serializer verzichtet, also keine Doc --> String --> Doc

    Im DOM tut doch dein Code nach eigener Aussage das gewünschte - was willst du denn darüber hinaus noch?

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
  2. @@Andreas Gabor:

    nuqneH

    ich bin leicht am verzweifeln bei der Suche nach einer Moeglichkeit mit Javascript und DOM ueberfluessige leerzeichen zu entfernen und ebenso zeilenumbrueche innerhalb von text knoten in xml dokumenten.

    <SCNR>Du meinst die überflüssigen Leerzeichen bei "zeilen umbruch" und "text knoten"? Bei "xml dokumenten" wäre ein Bindestricht angebracht. Und an etlichen Stellen Großschreibung.</SCNR>

    Qapla'

    --
    Volumen einer Pizza mit Radius z und Dicke a: pi z z a