2013-01-11 56 views
4

我想在JUnit测试中构建一个xml文档。java xml document.getTextContent()保持为空

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。)我don'thave一个线索这是为什么。实际的问题是后续的XPath表达式会引发错误:Unable to evaluate expression using this context

回答

2

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

中检索文本内容调用getTextNode根元素

+0

龙活着的“最小惊讶的原则”! – xtofl

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); 

参见:How to pretty print XML from Java?

+0

虽然这是一件好事,但我很担心我的文档是空的。不管怎么说,还是要谢谢你。 – xtofl