JAXP DOM: Whitespace aus XML entfernen
In Java 1.6 gibt es einen Bug im Dom-XML-Parser, der Whitespaces trotz aktiviertem Hinweis nicht entfernt.
DocumentBuilderFactory domBuilderFactory = DocumentBuilderFactory.newInstance();
domBuilderFactory.setIgnoringElementContentWhitespace(true);
Abhilfe schafft da diese Methode:
/** * Entfernt whitespace aus dem Document * * @see http://forums.java.net/jive/thread.jspa?messageID=345459 * @param e */ private static void removeWhitespaceNodes(Element e) { NodeList children = e.getChildNodes(); for (int i = children.getLength() - 1; i >= 0; i--) { Node child = children.item(i); if (child instanceof Text && ((Text) child).getData().trim().length() == 0) { e.removeChild(child); } else if (child instanceof Element) { removeWhitespaceNodes((Element) child); } } }
Category: Snippets One comment »

June 16th, 2010 at 12:44
[...] Im coder::by(♥); // blog habe ich ein kurzes HowTo verfasst, wie man diesen nervigen Bug in Java 1.6 umgeht: JAXP DOM: Whitespace aus XML entfernen. [...]