我正在尝试将包含XML的字符串解析为Java中的文档对象。这是该方法的源代码:
private Document getDocument(String xml) {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = null;
try {
builder = factory.newDocumentBuilder();
} catch (ParserConfigurationException e) {
e.printStackTrace();
}
Document doc = null;
try {
doc = builder.parse(new InputSource(new StringReader(xml)));
} catch (SAXException e) {
System.out.println(e.toString());
} catch (IOException e) {
System.out.println(e.toString());
}
return doc;
}
根据调试器,我总是得到的doc变量的值是
[#document:null]
有没有人知道出了什么问题?
感谢您的时间!
答案 0 :(得分:2)
这是正常的,因为调试器正在调用Document#toString()
来打印[node_name: node_value]
。根据{{3}},文档节点的节点值为空。如果要打印根元素的名称,则应评估doc.getDocumentElement().getNodeName()
。
答案 1 :(得分:1)
如果你发布XML文档以查看结构会很好,但这就是我读取XML的方法。
// Opening and creating file Objects
File inputFile = new File(xmlFile);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(inputFile);
doc.getDocumentElement().normalize();
之后,您可以使用doc.getElementsByTagName("Root Node");
获取XML的根节点。该对象具有很多属性,例如getFirstChild()
或getChildNodes()
,具体取决于结构,Ill建议阅读: