我正在将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(xmlSource)));
} catch (SAXException | IOException e) {
e.printStackTrace();
}
我已经尝试打印一个节点或某些东西,看看如何检索节点信息,但每当我尝试doc.getNodeName()
或doc.getElementById(elementId)
,或其他任何东西时,它都会保持打印空。
转换后,我这样做:
// Write the parsed document to an xml file
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer= null;
try {
transformer = transformerFactory.newTransformer();
} catch (TransformerConfigurationException e) {
e.printStackTrace();
}
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File("TestFile.xml"));
try {
transformer.transform(source, result);
} catch (TransformerException e) {
e.printStackTrace();
}
我的TestFile.xml
是一个正确的XML文件。所以我不明白为什么我的Document是null。我需要从文档中检索信息,但这样我就无法做任何事情了。如果创建并保存到磁盘的XML文件是正确的,那么Document如何使用每种方法返回null?我错过了什么?
请检查我的解决方案:App.java class
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
// root elements
Document doc = docBuilder.newDocument();