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の戻り値はDocumentnullに定義されています-ノードを参照してください。

テキストコンテンツを取得するには、ルート要素で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 に答える