java “org.w3c.dom.Document.getDocumentElement()”返回值为空[已关闭]

tyg4sfes  于 2023-01-29  发布在  Java
关注(0)|答案(1)|浏览(126)

**已关闭。**此问题需要debugging details。当前不接受答案。

编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
1小时前关闭。
Improve this question
我有这个密码

DocumentBuilderFactory docb = DocumentBuilderFactory.newInstance();
DocumentBuilder dom = docb.newDocumentBuilder();
Document doc = dom.newDocument();
Element raiz = doc.createElement("Alumnos");
//-Problem here 
doc.getDocumentElement().appendChild(raiz);

这应该创建一个XML文件,但是当我尝试这样做时,我得到了一个异常:
线程“AWT-EventQueue-0”中出现异常。无法调用“组织.w3c.dom.Element.appendChild(组织.w3c.dom.Node)”,因为“组织.w3c.dom.Document.getDocumentElement()”的返回值为空
我不知道为什么会得到这个,为什么文档元素是空的,我是不是忘了什么?
我试图创建一个XML文件以便以后追加元素,但是我得到了那个错误。

ffx8fchx

ffx8fchx1#

你已经创建了一个空文档,它还没有一个documentElement,所以getDocumentElement()返回null .方法doc.createElement只是创建一个元素,它并不把它添加到文档中,你需要显式地这样做:

DocumentBuilderFactory docb = DocumentBuilderFactory.newInstance();
DocumentBuilder dom = docb.newDocumentBuilder();
Document doc = dom.newDocument();
Element raiz = doc.createElement("Alumnos");
doc.appendChild(raiz);

换句话说,删除对getDocumentElement()的调用,但直接在doc上调用appendChild(raiz),这将使Alumnos成为文档元素(根元素)。
之后,对doc.getDocumentElement()的调用将返回与raiz所引用的对象相同的对象。

相关问题