在java中将根元素添加到xml文档中

Pat*_*r92 5 java xml dom

我正在尝试生成 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)

有人可以告诉我这个异常的原因吗?

先感谢您。

Jon*_*eet 1

您需要创建一个元素。目前您正在为 的每个元素创建一个comUnits。你应该拉出这个声明:

Element rootElement = fileDeclarationDocument.createElement("class");
Run Code Online (Sandbox Code Playgroud)

...并将其附加到文档中:

fileDeclarationDocument.appendChild(rootElement);
Run Code Online (Sandbox Code Playgroud)

然后在循环中,您可以为每次迭代创建一个新元素,并将附加到根元素。(老实说,您还不太清楚您想要的 XML 结构是什么。有了更多详细信息,我们也许能够为您提供更多帮助。)