Java tutorial
//package com.java2s; //License from project: Apache License import org.w3c.dom.Node; import java.util.AbstractMap.SimpleEntry; import java.util.ArrayList; public class Main { private static ArrayList<SimpleEntry<String, String>> traverseNode(Node n, String p) { ArrayList<SimpleEntry<String, String>> output = new ArrayList<>(); String nName; if (n.getNodeType() != Node.TEXT_NODE) { nName = n.getNodeName(); if (nName.startsWith("m:")) nName = nName.substring(2); if (nName.equals("mws:qvar")) return new ArrayList<>(); p += "/" + nName; } String nValue = n.getNodeValue(); if (nValue != null) { nValue = nValue.trim(); if (nValue.length() == 0) { return new ArrayList<>(); } } else { nValue = ""; } if (!n.hasChildNodes()) { output.add(new SimpleEntry<>(p, nValue)); } else { for (int i = 0; i < n.getChildNodes().getLength(); i++) { output.addAll(traverseNode(n.getChildNodes().item(i), p)); } } return output; } }