打印时Java文档为null,但已正确保存为Xml

时间:2019-04-17 10:13:41

标签: java xml dom

我通过这种方式将字符串转换为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文件。所以我不明白为什么我的文档为空。我需要从文档中检索信息,但是这种方式我无能为力。如果创建并保存到磁盘的XML文件正确,那么他的Document如何用每种方法返回null?我想念什么?

1 个答案:

答案 0 :(得分:0)

请检查我的解决方案: App.java class

sync