我正在尝试生成 XML 文件并保存它。以下代码显示了我将根元素附加到文档的方式。当我这样做时,抛出了一个异常,如下所示。
线程“main”org.w3c.dom.DOMException 中出现异常:HIERARCHY_REQUEST_ERR:尝试在不允许的位置插入节点。
public void comUnitIterator() {
System.out.println("This is the iterator");
Document fileDeclarationDocument = documentBuilder();
if (comUnits != null && comUnits.size() > 0) {
for (int i=0; i<comUnits.size();i++) {
CompilationUnit cu=comUnits.get(i);
SourceCodeClassVisitor classVisitor = new SourceCodeClassVisitor();
ClassOrInterfaceDeclaration classOrInterface = classVisitor.visit(cu, null);
Element rootElement = fileDeclarationDocument.createElement("class");
fileDeclarationDocument.appendChild(rootElement);
//classVisitor.visit(cu, null);
}
}
createXML(fileDeclarationDocument, "ABC");
}
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我这个异常的原因吗?
先感谢您。
您需要创建一个根元素。目前您正在为 的每个元素创建一个comUnits。你应该拉出这个声明:
Element rootElement = fileDeclarationDocument.createElement("class");
Run Code Online (Sandbox Code Playgroud)
...并将其附加到文档中:
fileDeclarationDocument.appendChild(rootElement);
Run Code Online (Sandbox Code Playgroud)
然后在循环中,您可以为每次迭代创建一个新元素,并将其附加到根元素。(老实说,您还不太清楚您想要的 XML 结构是什么。有了更多详细信息,我们也许能够为您提供更多帮助。)