Écrit à partir de Java dans un document XML Simple
Je sais qu'il y a des tonnes de questions sur l'écriture de l'île de Java en XML sur stackoverflow, mais c'est trop complexe. J'ai l'impression d'avoir un très simple problème que je n'arrive pas à comprendre.
Donc, j'ai un programme qui prend un tas de saisie de l'utilisateur et j'ai actuellement la création et l'ajout d'un document texte avec les résultats. Je vais juste poster mon écrivain code ici:
PrintWriter out = null;
try {
out = new PrintWriter(new BufferedWriter(new FileWriter("C:/Documents and Settings/blank/My Documents/test/test.txt", true)));
out.println("");
out.println("<event title=\""+titleFieldUI+"\"");
out.println(" start=\""+monthLongUI+" "+dayLongUI+" "+yearLongUI+" 00:00:00 EST"+"\"");
out.println(" isDuration=\"true\"");
out.println(" color=\""+sValue+"\"");
out.println(" end=\""+monthLong1UI+" "+dayLong1UI+" "+yearLong1UI+" 00:00:00 EST"+"\"");
out.println(" "+descriptionUI);
out.println("");
out.println("</event>");
out.println(" <!-- Above event added by: " +System.getProperty("user.name")+" " +
"on: "+month+"/"+day+"/"+year+" -->");
}catch (IOException e) {
System.err.println(e);
}finally{
if(out != null){
out.close();
}
}
Donc en fin de compte, je veux écrire dans un fichier XML (ce que je peux faire, en changeant simplement l'endroit où mon rédacteur en va). Le problème est que ce fichier XML a UNE balise racine connu comme <data>
. J'ai besoin des résultats de mon programme pour aller sur le bas du fichier XML, mais AVANT </data>
. C'est la seule condition. Tout ce que j'ai trouver semble trop complexe et je ne peux pas le comprendre..
Toute aide est grandement appréciée!
OriginalL'auteur user2221125 | 2013-04-04
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser un décent API XML. Pour exemple, voici un exemple d'utilisation JDOM:
C'est vraiment n'est pas bien dur... et ça va être beaucoup, beaucoup plus robuste que d'écrire manuellement. (Par exemple, cela va faire la bonne chose si votre titre contient "&" - alors que votre code aurait produit XML non valide.)
Je ne savais pas, alors j'ai regardé dans la documentation. Il ne m'a pas fallu longtemps, et je suis sûr qu'il ne vous faudra pas longtemps 🙂
Ok, merci pour la réponse 😀
Hey Jon, je suis en train d'écrire un programme pour mettre à jour le fichier XML pour l'SIMILIE Montage Créateur. Le créateur n'utilise pas les balises XML, à l'exception de <données> et <event>, de sorte que la définition de ces éléments, je ne pense pas que va travailler pour moi.
J'ai trouvé une solution déjà, mais merci beaucoup pour votre aide!
OriginalL'auteur Jon Skeet
Si vous aimez api fluent, alors vous pouvez utiliser JOOX:
ou XMLBuilder
Cela ne m'aide pas car je ne veux pas créer un fichier XML. Le fichier XML est pré-existant, j'ai besoin de les ajouter avec les informations saisies à partir de mon programme graphique.
Vous êtes trop rapide 🙂 Ce n'était pas terminé 😀
Je ne pense pas que StringReader est-ce que vous pensez que cela fonctionne.
Oui, vous avez raison 🙂
OriginalL'auteur MariuszS
Vous pouvez utiliser JOOX. C'est de cette façon que vous feriez un ajout:
Par défaut $(doc) pour charger le nœud racine. Si vous souhaitez un intérieur nœud, vous pouvez utiliser la méthode find (). La bibliothèque n'est pas documentée, très bien, mais étant open source, vous pouvez toujours vérifier les sources.
OriginalL'auteur Vlad Topala