So formatieren Sie eine Zeichenfolge in einer Zeile, StringUtils?
Habe ich eine Zeichenfolge, die ich bin übergeben log4j, um es in eine Datei protokolliert, wird der Inhalt der Zeichenfolge XML ist, und es wird formatiert werden, die auf mehrere Zeilen mit Einrückungen und so weiter, machen es leicht zu Lesen.
Ich möchte jedoch, dass XML in einer Zeile, wie kann ich dies tun? Ich habe einen Blick auf StringUtils, ich denke, ich könnte strip die tabs und Zeilenschaltungen, aber es muss doch eine bessere Möglichkeit?
Dank
- Ist die Leistung in irgendeiner Weise kritisch? Entfernen Sie einige Zeichen aus einem String kann man durchaus schnell; Parsen von XML-und dann serialisiert wird es wieder sehr teuer sein kann.
- Ich glaube nicht, dass wenn ich Antwort...
- M sollten Sie nicht 🙂 Aber für James ist es möglicherweise etwas zu prüfen. Es müssen auch nicht sein problem, wenn das Protokoll erstellt wird wie
if (logger.isDebugEnabled()) { /* log */}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde werfen Sie einen regexp-ersetzen auf. Das ist nicht sehr effizient, aber sicher schneller als XML-parsing!
Dies ist ungetestet:
Wenn ich nicht gepatzt, das wird beseitigen alle Zeilenende-Zeichen sowie alle whitespace-Zeichen sofort nach Zeilenende-Zeichen. Die whitespace-Zeichen am Anfang des Musters sollten töten alle nachgestellten Leerzeichen auf einzelnen Linien.
trim()
ist geworfen in für das gute Maß zu beseitigen Leerzeichen an den Anfang der ersten Zeile und das Ende der letzten.[\r\n]
, keine Notwendigkeit zu doubleslash es.\r
, und Sie müssen zu entkommen, die `\` in den Java-string?\r
; es können nur die tatsächlichen unescaped Zeichen.\r
behandelt wird wie ein CR, mit der Programmiersprache Java und eingefügt verbatim in die Klammern.glowcoder.regexKnowledge++;
Dank!\s
folgte+
, was bedeutet, dass ein Zeilenende-Zeichen ohne führende whitespace-Zeichen auf der nächsten Zeile nicht beseitigt würden. Ich habe mich verändert, die zu einer*
.<a\r\n foo="bar"
wird<afoo="bar"
Vielleicht mit JDom http://www.jdom.org/
getCompactFormat()
wahrscheinlicher