Here you can find the source of removeEmptyParagraphs(Node root)
public static void removeEmptyParagraphs(Node root)
//package com.java2s; /**//from w ww .j ava 2 s. c om * odt2braille - Braille authoring in OpenOffice.org. * * Copyright (c) 2010-2011 by DocArch <http://www.docarch.be>. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ import org.w3c.dom.Node; import org.w3c.dom.Element; import org.w3c.dom.NodeList; public class Main { public static void removeEmptyParagraphs(Node root) { // for each text:p NodeList pNodes = ((Element) root).getElementsByTagName("text:p"); for (int i = 0; i < pNodes.getLength(); i++) { Node node = pNodes.item(i); // if no text if (node.getTextContent().trim().equals("")) { // if no children if (!node.hasChildNodes()) { // then remove node.getParentNode().removeChild(node); i--; // if children } else { boolean empty = true; // don't remove if an element is present (like image...) for (int j = 0; j < node.getChildNodes().getLength(); j++) { if (node.getChildNodes().item(j).getNodeType() == node.ELEMENT_NODE) { empty = false; } } if (empty) { node.getParentNode().removeChild(node); i--; } } } } } }