JDK est livré avec un moyen de lire et d'écrire du XML (DOM)
L'utilisation de la méthode propre à JDK pour analyser XML peut éviter l'utilisation d'un grand nombre de fichiers 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();
}