Java tutorial
import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.OutputStreamWriter; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; public class Main { public static void main(String[] args) throws Exception { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setValidating(false); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.parse(new FileInputStream(new File("input.xml"))); File OutputDOM = new File("out.txt"); FileOutputStream fostream = new FileOutputStream(OutputDOM); OutputStreamWriter oswriter = new OutputStreamWriter(fostream); BufferedWriter bwriter = new BufferedWriter(oswriter); if (!OutputDOM.exists()) { OutputDOM.createNewFile(); } visitRecursively(doc, bwriter); bwriter.close(); oswriter.close(); fostream.close(); } public static void visitRecursively(Node node, BufferedWriter bw) throws Exception { NodeList list = node.getChildNodes(); for (int i = 0; i < list.getLength(); i++) { // get child node Node childNode = list.item(i); if (childNode.getNodeType() == Node.TEXT_NODE) { System.out.println("Found Node: " + childNode.getNodeName() + " - with value: " + childNode.getNodeValue() + " Node type:" + childNode.getNodeType()); String nodeValue = childNode.getNodeValue(); nodeValue = nodeValue.replace("\n", "").replaceAll("\\s", ""); if (!nodeValue.isEmpty()) { System.out.println(nodeValue); bw.write(nodeValue); bw.newLine(); } } visitRecursively(childNode, bw); } } }