gpt4 book ai didi

java - 使用 Java 将节点附加到现有的 XML 文件中

转载 作者:数据小太阳 更新时间:2023-10-29 02:20:38 28 4
gpt4 key购买 nike

您好,我正在寻找将 java 中的节点附加到现有 xml 文件中的解决方案。我得到的是一个像这样的 xml 文件

<data>
<people>
<person>
<firstName>Frank</firstName>
<lastName>Erb</lastName>
<access>true</access>
<images>
<img>hm001.jpg</img>
</images>
</person>
<person>
<firstName>Hans</firstName>
<lastName>Mustermann</lastName>
<access>true</access>
<images>
<img>hm001.jpg</img>
</images>
</person>
<person>
<firstName>Thomas</firstName>
<lastName>Tester</lastName>
<access>false</access>
<images>
<img>tt001.jpg</img>
</images>
</person>
</people>
</data>

我想添加的是一个 person 节点,其元素位于 people 元素内。我的大问题是作为根节点的数据节点。如果它是 Person 节点作为 root 我可以解决它。但是我无法设法让 people 节点下的 person 节点。

           <person>
<firstName>Tom</firstName>
<lastName>Hanks</lastName>
<access>false</access>
<images>
<img>tt001.jpg</img>
</images>
</person>

感谢您的帮助!

我的 java 代码看起来像这样

Element root = document.getDocumentElement();


// Root Element
Element rootElement = document.getDocumentElement();

Collection<Server> svr = new ArrayList<Server>();
svr.add(new Server());

for (Server i : svr) {
// server elements

Element server = document.createElement("people");
rootElement.appendChild(server);
//rootElement.appendChild(server);

Element name = document.createElement("person");
server.appendChild(name);

Element firstName = document.createElement("firstName");
firstName.appendChild(document.createTextNode(i.getFirstName()));
server.appendChild(firstName);
name.appendChild(firstName);

Element port = document.createElement("lastName");
port.appendChild(document.createTextNode(i.getLastName()));
server.appendChild(port);
name.appendChild(port);

Element access = document.createElement("access");
access.appendChild(document.createTextNode(i.getAccess()));
server.appendChild(access);
name.appendChild(access);

String imageName = Main.randomImgNr+"";
Element images = document.createElement("images");
//images.appendChild(document.createTextNode(i.getAccess()));
Element img = document.createElement("img");
img.appendChild(document.createTextNode(imageName));//i.getImage()));
images.appendChild(img);

server.appendChild(images);
name.appendChild(images);
root.appendChild(server);

最佳答案

没有图书馆你可以做这样的事情:

Element dataTag = doc.getDocumentElement();
Element peopleTag = (Element) dataTag.getElementsByTagName("people").item(0);

Element newPerson = doc.createElement("person");

Element firstName = doc.createElement("firstName");
firstName.setTextContent("Tom");

Element lastName = doc.createElement("lastName");
lastName.setTextContent("Hanks");

newPerson.appendChild(firstName);
newPerson.appendChild(lastName);

peopleTag.appendChild(newPerson);

哪些结果:

...
<person>
<firstName>Thomas</firstName>
<lastName>Tester</lastName>
<access>false</access>
<images>
<img>tt001.jpg</img>
</images>
</person>
<person>
<firstName>Tom</firstName>
<lastName>Hanks</lastName>
</person>
</people>
</data>

关于java - 使用 Java 将节点附加到现有的 XML 文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21240030/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com