Extraire les données d'un fichier xml (log)

Résolu/Fermé
sara - 18 mai 2012 à 16:38
 sara - 20 mai 2012 à 21:31
Bonjour,

Bonjour, j'ai besoin d'extraire les informations contenus dans un fichier log, créé automatiquement par un programme que j'ai fais en Java, pour l'utiliser après pour des statistiques.
J'ai tester des codes en java mais j'ai rencontré des problèmes.

Comment se faire pour traiter un fichier comme ça?Il contient plusieurs blocs xml.
Le nom du fichier est myLog.txt
Il est en XML et sous la forme suivante:
<?xml version="1.0" encoding="windows-1252" standalone="no"?>
<!DOCTYPE log SYSTEM "logger.dtd">
<log>
<record>
<date>2012-05-17T13:01:34</date>
<millis>1337252494404</millis>
<sequence>0</sequence>
<logger>com.mycompany</logger>
<level>INFO</level>
<class>test1.test1</class>
<method>main</method>
<thread>10</thread>
<message>message1</message>
</record>
<record>
<date>2012-05-17T13:01:34</date>
<millis>1337252494440</millis>
<sequence>1</sequence>
<logger>com.mycompany</logger>
<level>INFO</level>
<class>test1.test1</class>
<method>main</method>
<thread>10</thread>
<message>message2</message>
</record>
</log>
<?xml version="1.0" encoding="windows-1252" standalone="no"?>
<!DOCTYPE log SYSTEM "logger.dtd">
<log>
<record>
<date>2012-05-17T13:05:41</date>
<millis>1337252741283</millis>
<sequence>0</sequence>
<logger>com.mycompany</logger>
<level>INFO</level>
<class>test1.test1</class>
<method>main</method>
<thread>10</thread>
<message>message1</message>
</record>
<record>
<date>2012-05-17T13:05:41</date>
<millis>1337252741317</millis>
<sequence>1</sequence>
<logger>com.mycompany</logger>
<level>INFO</level>
<class>test1.test1</class>
<method>main</method>
<thread>10</thread>
<message>message2</message>
</record>
</log>
<?xml version="1.0" encoding="windows-1252" standalone="no"?>
<!DOCTYPE log SYSTEM "logger.dtd">
<log>
<record>
<date>2012-05-17T13:07:56</date>
<millis>1337252876705</millis>
<sequence>0</sequence>
<logger>mon_projet</logger>
<level>INFO</level>
<class>test1.test1</class>
<method>main</method>
<thread>10</thread>
<message>message1</message>
</record>
<record>
<date>2012-05-17T13:07:56</date>
<millis>1337252876738</millis>
<sequence>1</sequence>
<logger>mon_projet</logger>
<level>INFO</level>
<class>test1.test1</class>
<method>main</method>
<thread>10</thread>
<message>message2</message>
</record>
</log>


<config>Windows Vista / Safari 535.19</config>

2 réponses

HackTrack Messages postés 618 Date d'inscription vendredi 26 juillet 2002 Statut Membre Dernière intervention 13 juillet 2013 970
20 mai 2012 à 10:46
Salut!


Il existe une librairie Java qui s'appelle JIBX et qui te permet de générer des objets Java à partir de XML et vice-cersa.

Tu devras définir quel noeud de ton XML correspond à quel classe/champ de ton objet Java.

Si c'est trop lourd d'importer la librairie pour ce que tu as à réaliser, alors, tu peux t'orienter vers les librairies SAX et DOM.

Il y a d'ailleurs un tuto sur CCM: https://www.commentcamarche.net/contents/1329-dom-document-object-model-et-sax-simple-api-for-xml

;-)
1
Oui effectivement, j'ai résolu mon problème en utilisant Jdom et sax.
Merci
0