zeilen umbruch und doppelte leerzeichen entfernen - whitespace
Andreas Gabor
- javascript
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
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
@@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'