XMLUtil { public static String getTextContent(Node e) { StringBuilder sb = new StringBuilder(); NodeList children = e.getChildNodes(); if (children != null) { for (int i = 0; i < children.getLength(); i++) { Node n = children.item(i); if (n.getNodeType() == Node.TEXT_NODE) { sb.append(n.getNodeValue()); } } } return sb.toString(); } private  XMLUtil(); static Document parseXML(String xmlAsString); static Document parseXML(InputStream in); static void writeXML(Node xml, File file); static void writeXML(Node xml, OutputStream outputStream); static void removeNodes(Element parent, NodeList elements); static List<Element> getChildElementsByName(Element element,
			String localName); static List<Element> getChildElements(Element element); static void addAsFirstChild(Element element, Element newChild); static QName getQName(Node n); static void removeAllSubNodesExceptAttributes(Node n); static Document createDocument(); static String getContentsOfTextOnlyNode(Node n); static String getXPathForElement(Node e, NamespaceContext ctx); static int getPosition(Element e); static Text appendTextNode(Element e, String contents); static String getTextContent(Node e); static QName resolveQName(String qNameWithPrefix, Element element); static String resolveNamespacePrefix(String prefix, Element element); static QName resolveQNameTargetNS(String sName, Node context, String targetNS);  }
@Test public void testGetTextContent() { Document xml = XMLUtil.createDocument(); Element element = xml.createElement("a"); XMLUtil.appendTextNode(element, "abc"); assertEquals("abc", XMLUtil.getTextContent(element)); XMLUtil.appendTextNode(element, "def"); assertEquals("abcdef", XMLUtil.getTextContent(element)); }