Java - How to remove extra empty lines from XML file?

mrmcq

New Member
In short; i have many empty lines generated in an XML file, and i am looking for a way to remove them as a way of leaning the file. How can i do that ?For detailed explanation; I currently have this XML file :\[code\]<recent> <paths> <path>path1</path> <path>path2</path> <path>path3</path> <path>path4</path> </paths></recent>\[/code\]And i use this Java code to delete all tags, and add new ones instead :\[code\]public void savePaths( String recentFilePath ) { ArrayList<String> newPaths = getNewRecentPaths(); Document recentDomObject = getXMLFile( recentFilePath ); // Get the <recent> element. NodeList pathNodes = recentDomObject.getElementsByTagName( "path" ); // Get all <path> nodes. //1. Remove all old path nodes : for ( int i = pathNodes.getLength() - 1; i >= 0; i-- ) { Element pathNode = (Element)pathNodes.item( i ); pathNode.getParentNode().removeChild( pathNode ); } //2. Save all new paths : Element pathsElement = (Element)recentDomObject.getElementsByTagName( "paths" ).item( 0 ); // Get the first <paths> node. for( String newPath: newPaths ) { Element newPathElement = recentDomObject.createElement( "path" ); newPathElement.setTextContent( newPath ); pathsElement.appendChild( newPathElement ); } //3. Save the XML changes : saveXMLFile( recentFilePath, recentDomObject ); }\[/code\]After executing this method a number of times i get an XML file with right results, but with many empty lines after the "paths" tag and before the first "path" tag, like this :\[code\]<recent> <paths> <path>path5</path> <path>path6</path> <path>path7</path> </paths></recent>\[/code\]Anyone knows how to fix that ?------------------------------------------- Edit: Add the saveXMLFile(...) code.\[code\]public void saveXMLFile( String filePath, Document domObject ) { File xmlOutputFile = null; FileOutputStream fos = null; try { xmlOutputFile = new File( filePath ); fos = new FileOutputStream( xmlOutputFile ); TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); transformer.setOutputProperty( OutputKeys.INDENT, "yes" ); transformer.setOutputProperty( "{http://xml.apache.org/xslt}indent-amount", "2" ); DOMSource xmlSource = new DOMSource( domObject ); StreamResult xmlResult = new StreamResult( fos ); transformer.transform( xmlSource, xmlResult ); // Save the XML file. } catch (FileNotFoundException e) { e.printStackTrace(); } catch (TransformerConfigurationException e) { e.printStackTrace(); } catch (TransformerException e) { e.printStackTrace(); } finally { if (fos != null) try { fos.close(); } catch (IOException e) { e.printStackTrace(); } }}\[/code\]
 
Back
Top