JDK自带方式读写XML(DOM)方式

JDK自带方式读写XML(DOM)方式

使用JDK自带方式解析XML可以避免结果由于使用了大量jar而很大。

		//创建一个DocumentBuilderFactory的对象
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

        try {
            //创建DocumentBuilder对象
            DocumentBuilder db = dbf.newDocumentBuilder();
            //通过DocumentBuilder对象的parser方法加载books.xml文件到当前项目下
            Document document = db.parse(new StringBufferInputStream(vrt_string));

            //获取所有book节点的集合
            NodeList bookList = document.getElementsByTagName("GDALWarpOptions");
            if (bookList == null || bookList.getLength() == 0) return vrt_string;
            Node gdalWarpOptions = bookList.item(0);
			//加入结点、属性等操作
            for (Map.Entry<String, String> entry : warp_options.entrySet()) {
                Element optionNode = document.createElement("Option");
                optionNode.setTextContent(entry.getValue());
                optionNode.setAttribute("name", entry.getKey());
                gdalWarpOptions.appendChild(optionNode);
            }
			//dom 转String
            DOMSource source = new DOMSource(document);
            StringWriter writer = new StringWriter();
            Result result = new StreamResult(writer);
            Transformer transformer = TransformerFactory.newInstance().newTransformer();
            transformer.transform(source, result);
            return writer.toString();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (ParserConfigurationException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (SAXException e) {
            e.printStackTrace();
        } catch (TransformerConfigurationException e) {
            e.printStackTrace();
        } catch (TransformerException e) {
            e.printStackTrace();
        }

猜你喜欢

转载自blog.csdn.net/polixiaohai/article/details/104436376