如何在Java中将节点追加到现有XML文件

如何在Java中将节点追加到现有XML文件,第1张

如何在Java中将节点追加到现有XML文件

以下完整示例将从当前目录中读取 现有

server.xml
文件,追加新服务器,然后将文件重写为
server.xml
。没有现有的.xml文件,该功能将无法正常运行,因此您需要修改代码以处理这种情况。

import java.util.*;import javax.xml.transform.*;import javax.xml.transform.stream.*;import javax.xml.transform.dom.*;import org.w3c.dom.*;import javax.xml.parsers.*;public class AddXmlNode {    public static void main(String[] args) throws Exception {        documentBuilderFactory documentBuilderFactory = documentBuilderFactory.newInstance();        documentBuilder documentBuilder = documentBuilderFactory.newdocumentBuilder();        document document = documentBuilder.parse("server.xml");        Element root = document.getdocumentElement();        Collection<Server> servers = new ArrayList<Server>();        servers.add(new Server());        for (Server server : servers) { // server elements Element newServer = document.createElement("server"); Element name = document.createElement("name"); name.appendChild(document.createTextNode(server.getName())); newServer.appendChild(name); Element port = document.createElement("port"); port.appendChild(document.createTextNode(Integer.toString(server.getPort()))); newServer.appendChild(port); root.appendChild(newServer);        }        DOMSource source = new DOMSource(document);        TransformerFactory transformerFactory = TransformerFactory.newInstance();        Transformer transformer = transformerFactory.newTransformer();        StreamResult result = new StreamResult("server.xml");        transformer.transform(source, result);    }    public static class Server {        public String getName() { return "foo"; }        public Integer getPort() { return 12345; }    }}

示例 server.xml 文件:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Servers>  <server>    <name>something</name>    <port>port</port>  </server></Servers>

对代码的主要更改是 创建新的“ root”元素。上面的示例仅使用现有节点中的当前根节点

server.xml
,然后追加一个新的 Server
元素并重新写入该文件。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5586343.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存