使用java将节点附加到现有XML文件中
发布时间:2020-12-15 04:17:12 所属栏目:Java 来源:网络整理
导读:您好我正在寻找一个解决方案,将 java中的节点附加到现有的xml文件中. 我得到的是像这样的xml文件 datapeople person firstNameFrank/firstName lastNameErb/lastName accesstrue/access images imghm001.jpg/img /images /person person firstNameHans/first
您好我正在寻找一个解决方案,将
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元素中.我的大问题是数据节点是根节点.如果它是作为root的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> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |