Andreas Gabor: zeilen umbruch und doppelte leerzeichen entfernen - whitespace

Beitrag lesen

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