Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java xml文档.getTextContent()保持为空_Java_Xml_Xmldom - Fatal编程技术网

java xml文档.getTextContent()保持为空

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

我试图在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表达式抛出错误:
无法使用此上下文计算表达式

文档上的
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);

另请参见:

万岁“最小惊喜原则”!虽然这是一个很好的选择,但我很担心我的文档是空的。无论如何,谢谢你。