java xml document.getTextContent()保持为空

我正在尝试在JUnit测试中构建一个xml文档。

doc=docBuilder.newDocument(); Element root = doc.createElement("Settings"); doc.appendChild(root); Element label0 = doc.createElement("label_0"); root.appendChild(label0); String s=doc.getTextContent(); System.out.println(s); 

然而,文档保持空白(即println产生null 。)我不知道为什么会这样。 实际问题是后续XPath表达式抛出错误: Unable to evaluate expression using this context

DocumentgetTextContent的返回值定义为null-请参阅Node 。

要检索文本内容,请在根元素上调用getTextNode

我想你想序列化文档以将其传递给测试用例。 为此,您必须将文档传递给空的XSL转换器,如下所示:

 Transformer transformer = TransformerFactory.newInstance().newTransformer(); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); //initialize StreamResult with File object to save to file StreamResult result = new StreamResult(new StringWriter()); DOMSource source = new DOMSource(doc); transformer.transform(source, result); String xmlString = result.getWriter().toString(); System.out.println(xmlString); 

另请参见: 如何从Java中打印XML?