java xml文档.getTextContent()保持为空
我试图在JUnit测试中构建一个xml文档java xml文档.getTextContent()保持为空,java,xml,xmldom,Java,Xml,Xmldom,我试图在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.p
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表达式抛出错误:无法使用此上下文计算表达式
文档上的getTextContent
的返回值定义为null-请参阅
要检索根元素上的文本内容,请调用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);
另请参见:万岁“最小惊喜原则”!虽然这是一个很好的选择,但我很担心我的文档是空的。无论如何,谢谢你。