public static void main(String[] args) { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); try { DocumentBuilder db = dbf.newDocumentBuilder(); //加载students.xml文件 Document doc = db.parse(new File("bin/students.xml")); //创建节点 Element eltStu = doc.createElement("student"); Element eltName = doc.createElement("name"); Element eltAge = doc.createElement("age"); //创建文本节点 Text txtName = doc.createTextNode("王五"); Text txtAge = doc.createTextNode("50"); //在name和age节点内部追加文本节点 eltName.appendChild(txtName); eltAge.appendChild(txtAge); //把name和age节点追加到studen节点 eltStu.appendChild(eltName); eltStu.appendChild(eltAge); //设置student节点的属性 eltStu.setAttribute("id", "03"); //获取根节点 Element root = doc.getDocumentElement(); //把student节点追加到根节点内部 root.appendChild(eltStu); //获取内部所有的student的节点 NodeList nodes = root.getElementsByTagName("student"); // 删除第student一个节点 root.removeChild(nodes.item(0)); //修改节点,因为在前面删除了一个节点,NodeList集合中也同时更新 Element eltCha = (Element) nodes.item(0); //修改age属性中的文本值 Node nodeAge = eltCha.getElementsByTagName("age").item(0); // nodeAge.getFirstChild().setNodeValue("1500"); // 用于创建Transofrmer对象 TransformerFactory tff = TransformerFactory.newInstance(); Transformer tf = tff.newTransformer(); tf.setOutputProperty("encoding", "utf-8"); // 以 Document Object Model(DOM)树的形式充当转换 Source 树的持有者。 DOMSource source = new DOMSource(doc); // 充当转换结果的持有者,可以为 XML、纯文本、HTML 或某些其他格式的标记。 StreamResult result = new StreamResult(new File("src/convert.xml")); // 将 XML Source 转换为 Result tf.transform(source, result); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (TransformerConfigurationException e) { e.printStackTrace(); } catch (TransformerException e) { e.printStackTrace(); } }