Ajouter des nœuds dans les Fichier XML avec java
Salut je cherche une solution pour ajouter des nœuds à partir de java dans un fichier xml existant.
Ce que j'ai obtenu est un fichier xml comme ceci
<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>
ce que je veux ajouter, c'est une personne nœud avec ses éléments à l'intérieur de l'élément de personnes. Mon gros problème est le nœud de données qui est le nœud racine. Si il serait la Personne nœud en tant que root j'ai pu le résoudre. Mais je n'arrive pas à obtenir de la personne nœuds sous les gens nœud.
<person>
<firstName>Tom</firstName>
<lastName>Hanks</lastName>
<access>false</access>
<images>
<img>tt001.jpg</img>
</images>
</person>
merci pour votre aide!
mon code java ressemble que de loin, comme ce
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);
Essayé d'utiliser JAXB? Il est assez soignée.
OriginalL'auteur user3216026 | 2014-01-20
Vous devez vous connecter pour publier un commentaire.
Sans bibliothèque, vous pouvez faire quelque chose comme ceci:
Dont les résultats:
Vous êtes les bienvenus!
Est-il possible d'obtenir les nouveaux nœuds dans le bon format? Chaque fois que j'essaie d'ajouter ces nœuds, ils ont collé sur le côté gauche. Merci pour l'aide à l'avance.
OriginalL'auteur Felipe T.
C'est très facile avec JOOX bibliothèque, exemples:
Il est beaucoup plus facile avec la bibliothèque.
OriginalL'auteur MariuszS
Suivre cette approche générale:
Il utilise la méthode helper suivante pour imprimer les résultats:
Ce qui pourrait être modifié pour mettre à jour le fichier d'origine à la place.
OriginalL'auteur Wayne Burkett
OriginalL'auteur Nandkishor Mewara