5

我正在尝试在 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.

4

2 回答 2

2

getTextContenton的返回值Document被定义为 null - 请参阅Node

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

于 2013-01-11T13:51:56.950 回答
0

我想您想序列化文档以将其传递给测试用例。为此,您必须将文档传递给一个空的 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?

于 2013-01-11T13:56:36.027 回答