我写了以下代码
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.newDocument();
// Unniversity tag
Element rootElement = doc.createElement("university");
// Unniversity attrs
Attr uniName = doc.createAttribute("name");
uniName.setNodeValue(university.name);
Attr uniLogo = doc.createAttribute("logo");
uniLogo.setNodeValue(university.pathToLogo);
Attr uniMission = doc.createAttribute("mission");
uniMission.setNodeValue(university.mission);
Attr uniVision = doc.createAttribute("vision");
uniVision.setNodeValue(university.vision);
rootElement.setAttributeNode(uniName);
rootElement.setAttributeNode(uniLogo);
rootElement.setAttributeNode(uniMission);
rootElement.setAttributeNode(uniVision);
在我检查doc
的值时进行调试时我发现了
doc = (com.sun.org.apache.xerces.internal.dom.DocumentImpl) [#document: null]
我做错了什么?我跟着this。
答案 0 :(得分:0)
我犯了一个愚蠢的错误,即我没有将rootElement
绑定/添加doc
更新代码:
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.newDocument();
// Unniversity tag
Element rootElement = doc.createElement("university");
doc.appendChild(rootElement); // I forgot to add this statement
// Unniversity attrs
Attr uniName = doc.createAttribute("name");
uniName.setNodeValue(university.name);
Attr uniLogo = doc.createAttribute("logo");
uniLogo.setNodeValue(university.pathToLogo);
Attr uniMission = doc.createAttribute("mission");
uniMission.setNodeValue(university.mission);
Attr uniVision = doc.createAttribute("vision");
uniVision.setNodeValue(university.vision);
rootElement.setAttributeNode(uniName);
rootElement.setAttributeNode(uniLogo);
rootElement.setAttributeNode(uniMission);
rootElement.setAttributeNode(uniVision);
答案 1 :(得分:0)
在您的代码中,您尚未设置文档的内容。您应该添加以下内容:
document.appendChild(rootElement);
要确认文档包含XML结构,您可以打印以下语句:\
System.out.println(document.getDocumentElement());
这将打印[university:null]