1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
| package Prog.EPlayGames.Class;
import java.io.*;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import org.jdom.*;
import org.jdom.input.SAXBuilder;
import org.jdom.output.*;
public class JDOM
{
//Nous allons commencer notre arborescence en créant la racine XML
//qui sera ici "personnes".
static Element racine = new Element("games");
static List<Game> CollectionOfGame = new LinkedList();
public JDOM(){
}
//On crée un nouveau Document JDOM basé sur la racine que l'on vient de créer
static org.jdom.Document document = new Document(racine);
public void TheFile(){
//On crée une instance de SAXBuilder
SAXBuilder sxb = new SAXBuilder();
try
{
//On crée un nouveau document JDOM avec en argument le fichier XML
//Le parsing est terminé ;
String filename="games.xml" ;
ClassLoader classLoader=this.getClass().getClassLoader();
File file = new File(classLoader.getResource(filename).getFile());
document = sxb.build(new File("games.xml"));
System.out.println("Doc" + (document == null));
}
catch(Exception e)
{
e.printStackTrace();
System.out.println(e);
}
}
public void Save(String id, String name, String plateform, String price, String description, String url){
//On crée un nouvel Element etudiant et on l'ajoute
//en temps qu'Element de racine
Element game = new Element("game");
racine.addContent(game);
//On crée un nouvel Attribut classe et on l'ajoute à etudiant
//grâce à la méthode setAttribute
//Attribute classe = new Attribute("classe","P2");
//game.setAttribute(classe);
//On crée un nouvel Element nom, on lui assigne du texte
//et on l'ajoute en temps qu'Element de etudiant
Element a = new Element("id");
a.setText("id");
game.addContent(a);
Element b = new Element("name");
b.setText("name");
game.addContent(b);
Element c = new Element("plateform");
c.setText("plateform");
game.addContent(c);
Element d = new Element("price");
d.setText("price");
game.addContent(d);
Element e = new Element("description");
e.setText("description");
game.addContent(e);
Element f = new Element("url");
f.setText("url");
game.addContent(f);
try
{
//On utilise ici un affichage classique avec getPrettyFormat()
XMLOutputter out = new XMLOutputter(Format.getPrettyFormat());
//Remarquez qu'il suffit simplement de créer une instance de FileOutputStream
//avec en argument le nom du fichier pour effectuer la sérialisation.
out.output(document, new FileOutputStream("games.xml"));
}
catch (java.io.IOException exc){}
}
//Ajouter cette méthodes à la classe JDOM2
public List GetCollectionOfGame()
{
//On crée une List contenant tous les noeuds "etudiant" de l'Element racine
List listGames = racine.getChildren("game");
System.out.println(racine == null);
System.out.println(racine);
System.out.println(listGames);
//On crée un Iterator sur notre liste
Iterator i = listGames.iterator();
List MyCollection = new LinkedList();
while(i.hasNext())
{
//pouvoir utiliser les méthodes propres aux Element comme :
//selectionner un noeud fils, modifier du texte, etc...
Element courant = (Element)i.next();
System.out.println(courant); //On recrée l'Element courant à chaque tour de boucle afin de
//On affiche le nom de l'element courant
Game AGame = new Game();
AGame.setName(courant.getChild("name").getText());
AGame.setDescription(courant.getChild("description").getText());
AGame.setId(courant.getChild("id").getText());
AGame.setPlateform(courant.getChild("plateform").getText());
AGame.setPrice(courant.getChild("price").getText());
AGame.setUrl(courant.getChild("url").getText());
System.out.println(AGame);
CollectionOfGame.add(AGame);
}
return CollectionOfGame;
}
} |