Comment écrire dans un fichier XML existant à l'aide de java
J'ai un fichier xml ressemblait à ça. employees.xml
<Employees>
<Employee>
<FirstName>myFirstName</FirstName>
<LastName>myLastName</LastName>
<Salary>10000</Salary>
<Employee>
</Employees>
Maintenant, comment puis-je ajouter de nouveaux éléments Employés pour le fichier XML existant?.. Un exemple de code est très apprécié.
Lire dans le fichier, faites les modifications dans la mémoire, écrire le fichier complet en un nouveau. Vous n'avez pas tombés dans le piège de l'aide d'un fichier plat comme une base de données?
Ravn Andersen - XML n'est pas vraiment un format de fichier plat.
Vraiment? Qu'est-ce donc (quand, comme dans ce cas, il est stocké dans un fichier)?
Ravn Andersen - Voir en.wikipedia.org/wiki/Flat_file_database pour un fichier plat... XML n'est-ce pas, mais hiérarchiquement structuré de données. Mais il est généralement stockées dans des fichiers, ils ne sont pas à plat.
veuillez revisiter l'exemple XML, et d'envisager si par exemple
Ravn Andersen - XML n'est pas vraiment un format de fichier plat.
Vraiment? Qu'est-ce donc (quand, comme dans ce cas, il est stocké dans un fichier)?
Ravn Andersen - Voir en.wikipedia.org/wiki/Flat_file_database pour un fichier plat... XML n'est-ce pas, mais hiérarchiquement structuré de données. Mais il est généralement stockées dans des fichiers, ils ne sont pas à plat.
veuillez revisiter l'exemple XML, et d'envisager si par exemple
</FirstName><LastName>
ne pouvait pas être considérée comme un bon séparateur (avec des délimiteurs similaires pour le reste des champs), et donc ce dialecte XML (par opposition à XML en général) est un fichier plat.OriginalL'auteur Aruna Karunarathna | 2012-06-09
Vous devez vous connecter pour publier un commentaire.
Pour ajouter à un fichier XML, vous aurez généralement besoin de le lire dans une structure de données interne, ajouter les données nécessaires dans la forme interne, puis d'écrire tout cela de nouveau, en écrasant le fichier original.
La structure interne peut être
DOM
ou l'un de vos propres décisions, et il existe de multiples façons à la fois de la lecture et de l'écriture.Si les données sont raisonnablement petit, DOM est probablement la plus facile, et il y a des exemples de code dans les réponses aux cette question relative à la.
Si vos données est grande, DOM ne le fera pas. Approches possibles sont à utiliser SAX à lire et à écrire (même si SAX est traditionnellement seulement un mécanisme de lecture), comme décrit dans la réponse à une autre question connexe.
Vous pouvez également envisager de JAXB ou (peut-être même le meilleur) StAX.
stax lien semble mort
OriginalL'auteur Don Roby
Vous ne pouvez pas écrire des nœuds d'un fichier XML existant.' Vous pouvez lire un fichier XML existant dans la mémoire, les ajouter au modèle de données, puis d'écrire un nouveau fichier. Vous pouvez renommer l'ancien fichier et écrire le nouveau fichier sous l'ancien nom. Mais il n'est pas couramment utilisé Java utilitaire qui va modifier un fichier XML en place.
OriginalL'auteur bmargulies
Veuillez utiliser xstream pour analyser votre fichier comme un objet, ou de créer une liste avec les employés et ensuite, vous pouvez directement convertir xml.
OriginalL'auteur Felix Christy
Je pense que ce lien peut être utile pour vous.
Ici, vous avez des échantillons de comment lire /analyser, modifier (ajout d'éléments) et save (écrire dans le fichier xml de nouveau).
Les exemples suivants, vous pouvez trouver à: http://www.petefreitag.com/item/445.cfm
Lire:
Modifier:
Écriture de fichier XML:
OriginalL'auteur Francisco Spaeth
Vous avez besoin d'utiliser DOM pour écrire/modifier votre fichier xml.
C'est très simple:
Vous avez juste besoin de créer des nœuds et ajouter des attributs.
Vous pouvez également écrire/modifier des fichiers XSLT en utilisant le modèle DOM.
juste une recherche google pour les DOM java
au contraire, il est très facile, vous avez juste besoin d'analyser, puis de rechercher le nœud, vous devez ajouter de nouveaux nœuds pour les ajouter à cela le besoin de nœuds.
OriginalL'auteur GingerHead