打印时Java Document为null,但作为Xml正确保存

问题描述 投票:0回答:1

我正在将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文件是正确的,那么Doc​​ument如何使用每种方法返回null?我错过了什么?

java xml dom
1个回答
0
投票

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

  DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
                DocumentBuilder docBuilder = docFactory.newDocumentBuilder();

                // root elements
                Document doc = docBuilder.newDocument();
© www.soinside.com 2019 - 2024. All rights reserved.