Bonjour,
si j'ai bien compris, tu as des données dans un fichier texte que tu aimerais mettre au format xml.
Pour cela, je pense (et j'espere me tromper) qu'il n'existe rien d'automatique, il va falloir te faire un petit programme. Celui - ci pourrait etre tres simple, tous dépend de ton fichier texte.
11/05/2007 - 13h17
bacou
Date d'inscription
avril 2007
Âge
30
Messages
29
Re : creer un fichier xml
Merci pour ta reponse
mais j'aimerai savoir quel langage faudrait il choisir .
Dernière modification par yoda1234 ; 15/05/2007 à 11h43.
11/05/2007 - 13h26
Aneldo
Date d'inscription
avril 2007
Messages
294
Re : creer un fichier xml
cela dépend de toi et de la structure de ton fichier de données (tu peux en mettre un bout ici)
Le perl est vraiment bon pour parser les fichiers (permet l'utilisation d'expression reguliere)
Mais c'est aussi faisable en java ou autre. Cela depend de la complexité du fichier de données et de ta connaissance des expressions regulieres.
11/05/2007 - 13h53
bacou
Date d'inscription
avril 2007
Âge
30
Messages
29
Re : creer un fichier xml
Disons j'aimerai le faire en java ou php mais je suis un peu limité pour ses langages mais tu ne sais pas lequel est le plus performant?
merci
Dernière modification par yoda1234 ; 15/05/2007 à 11h43.
11/05/2007 - 14h01
bacou
Date d'inscription
avril 2007
Âge
30
Messages
29
Re : creer un fichier xml
Envoyé par Aneldo
cela dépend de toi et de la structure de ton fichier de données (tu peux en mettre un bout ici)
Le perl est vraiment bon pour parser les fichiers (permet l'utilisation d'expression reguliere)
Mais c'est aussi faisable en java ou autre. Cela depend de la complexité du fichier de données et de ta connaissance des expressions regulieres.
cela est faisable sans probleme, en java comme en php.
Je suppose que la ligne 2 contient une erreur
CMD <= admin log "CVMX: 2 content =AT:0612222150"
il ne manquerais pas le mot clé metrics? ou netmetrics?
Je te propose de récupérer le tag et la valeur si elle est presente.
Mais tous d'abord: y as t il une erreur en ligne 2? est ce que en ligne 1, on a bien le mot clé netmetrics et non pas metrics? Y as t il d'autre mot clé?
11/05/2007 - 15h12
bacou
Date d'inscription
avril 2007
Âge
30
Messages
29
Re : creer un fichier xml
Envoyé par Aneldo
Mais tous d'abord: y as t il une erreur en ligne 2? est ce que en ligne 1, on a bien le mot clé netmetrics et non pas metrics? Y as t il d'autre mot clé?
oui ya une erreur
20061219_065111,444 1166507471439-7438 CMD <= admin log "CVMX: 2 content =netmetrics:GDEB"
20061219_065111,444 1166507471439-7438 CMD <= admin log "CVMX: 2 content =ATEL:0612222150"
20061219_065111,444 1166507471439-7438 CMD <= admin log "CVMX: 2 content =netmetrics:AAGC:0810635202"
20061219_065111,444 1166507471439-7438 CMD <= admin log "CVMX: 2 content =netmetrics:GDTS"
20061219_065111,444 1166507471439-7438 CMD <= admin log "CVMX: 2 content =netmetrics:GCES:accueil_ferme "
20061219_065111,444 1166507471439-7438 CMD <= admin log "CVMX: 2 content =netmetrics:ATES:message"
20061219_065111,444 1166507471439-7438 CMD <= admin log "CVMX: 2 content =netmetrics:GFTS"
20061219_065153,122 1166507471439-7438 CMD <= admin log "CVMX: 2 content =netmetrics:GDTU"
20061219_065153,122 1166507471439-7438 CMD <= admin log "CVMX: 2 content =netmetrics:AMSU:vocal"
voila un exemple complet mais ya d'autres tag de ce genre
ce nest juste qu'un exemple
Dernière modification par yoda1234 ; 15/05/2007 à 11h44.
11/05/2007 - 15h22
Aneldo
Date d'inscription
avril 2007
Messages
294
Re : creer un fichier xml
je te propose un script java :
Celui ci fonctionne pour toutes les lignes sauf la deuxieme.
il n'est pas sensible au mot netmetrics (donc il peut y avoir n'importe lequel à la place)
Code:
try {
//le fichier de donnée d'entrée
BufferedReader inputDataFile = new BufferedReader(new FileReader("data.txt"));
//le fichier de sortie xml
PrintWriter outputXmlFile = new PrintWriter(new BufferedWriter(new FileWriter("data.xml")));
//lecture d'une ligne du fichier de donnée (tant qu'il y en a)
String line = "";
while( (line=inputDataFile.readLine()) != null ) {
// line = CMD <= admin log "CVMX: 2 content =metrics:AM:vocal"
System.out.println("ligne en cours de traitement : " + line);
//on coupe la ligne en 2 :
String [] sa = line.split(" =");
//sa[0] = "CMD <= admin log "CVMX: 2 content"
//sa[1] = "metrics:AM:vocal""
//suppression du caractere " en fin de chaine
sa[1] = sa[1].substring(0, sa[1].length()-1);
String [] sb = sa[1].split(":");
//sb[0] : le mot cle (on s'en fiche) netmetrics
//sb[1] : le nom du tag
//sb[2] : la valeur du tag (optionnel)
try {
outputXmlFile.println("<tag name=\"" + sb[1] + "\" value=\"" + sb[2] + "\"/>");
} catch (Exception e) {
outputXmlFile.println("<tag name=\"" + sb[1] + "\" value=\"" + "null" + "\"/>");
}
}
outputXmlFile.close();
inputDataFile.close();
} catch (Exception ex) {
System.out.println(ex);
}
Pour la ligne 2, il faut traiter le cas sb[0] different de "netmetrics" et enregistrer dans le fichier xml sb[0] et sb[1] au lieu de sb[1] et sb[2].
Bien sure, il reste à rajouter l'encapsulation des données xml
11/05/2007 - 16h03
bacou
Date d'inscription
avril 2007
Âge
30
Messages
29
Re : creer un fichier xml
je te recmercie beaucoup je vais essayer
a+
Dernière modification par yoda1234 ; 15/05/2007 à 11h45.
Salut,
Pour la partie xml, tu as une foultitude de bibliothèque existante, du plus simple au plus compliqué, google + "java xml parser" et tu devrais trouver ton bonheur.
Tant qu'il y à de la vis, il y a du tourne-vis
15/05/2007 - 09h39
bacou
Date d'inscription
avril 2007
Âge
30
Messages
29
Re : creer un fichier xml
Envoyé par lou_ibmix_xi
Salut,
Pour la partie xml, tu as une foultitude de bibliothèque existante, du plus simple au plus compliqué, google + "java xml parser" et tu devrais trouver ton bonheur.
Merci pour la reponse je vai regarder sur google
a+
15/05/2007 - 11h00
bacou
Date d'inscription
avril 2007
Âge
30
Messages
29
Re : creer un fichier xml
Envoyé par bacou
je te recmercie beaucoup je vais essayer
a+
Bonjour ,
Pour la 2eme ligne j'ai essayé avec la condition if au cas il yaurai pas de netmetrics c vrai que il marche mais il decale les autres lignes et a la place des tags on a netmetrics et a la place des valeurson les tags
Code:
/*
* Ecrirefichier.java
*
* Created on 14 mai 2007, 09:39
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package my.contacteditor;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.io.FileReader;
import java.lang.*;
import java.util.StringTokenizer;
import java.io.IOException;
/**
*
* @author ybda8222
*/
public class Ecrirefichier {
/** Creates a new instance of Ecrirefichier */
Ecrirefichier(String nom) throws IOException {
try {
//le fichier de donnée d'entrée
BufferedReader inputDataFile = new BufferedReader(new FileReader(nom));
//le fichier de sortie xml
PrintWriter outputXmlFile = new PrintWriter(new BufferedWriter(new FileWriter("data.xml")));
//lecture d'une ligne du fichier de donnée (tant qu'il y en a)
String line = "";
while( (line=inputDataFile.readLine()) != null ) {
// line = CMD <= admin log "CVMX: 2 content =metrics:AM:vocal"
System.out.println("ligne en cours de traitement : " + line);
//on coupe la ligne en 2 :
String [] sa = line.split(" =");
//sa[0] = "CMD <= admin log "CVMX: 2 content"
//sa[1] = "metrics:AM:vocal""
//suppression du caractere " en fin de chaine
sa[1] = sa[1].substring(0, sa[1].length()-1);
String [] sb = sa[1].split(":");
//sb[0] : le mot cle (on s'en fiche) netmetrics
//sb[1] : le nom du tag
//sb[2] : la valeur du tag (optionnel)
// System.out.println("la ligne" + sb[0]);
if(sb[0]!="netmetric")
{
try {
outputXmlFile.println("<tag name=\"" + sb[0] + "\" value=\"" + sb[1] + "\"/>");
} catch (Exception e) {
outputXmlFile.println("<tag name=\"" + sb[0] + "\" value=\"" + "null" + "\"/>") ;
}
}
else
{
try {
outputXmlFile.println("<tag name=\"" + sb[0] + "\" value=\"" + sb[1] + "\"/>");
} catch (Exception e) {
outputXmlFile.println("<tag name=\"" + sb[0] + "\" value=\"" + "null" + "\"/>") ;
}
}
}
outputXmlFile.close();
inputDataFile.close();
} catch (Exception ex) {
System.out.println(ex);
}
}
public static void main(String [] args) throws IOException {
Ecrirefichier bab =new Ecrirefichier(args[0]);
}
}
Bonjour ,
Pour la 2eme ligne j'ai essayé avec la condition if au cas il yaurai pas de netmetrics c vrai que il marche mais il decale les autres lignes et a la place des tags on a netmetrics et a la place des valeurson les tags
Code:
/*
* Ecrirefichier.java
*
* Created on 14 mai 2007, 09:39
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package my.contacteditor;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.io.FileReader;
import java.lang.*;
import java.util.StringTokenizer;
import java.io.IOException;
/**
*
* @author ybda8222
*/
public class Ecrirefichier {
/** Creates a new instance of Ecrirefichier */
Ecrirefichier(String nom) throws IOException {
try {
//le fichier de donnée d'entrée
BufferedReader inputDataFile = new BufferedReader(new FileReader(nom));
//le fichier de sortie xml
PrintWriter outputXmlFile = new PrintWriter(new BufferedWriter(new FileWriter("data.xml")));
//lecture d'une ligne du fichier de donnée (tant qu'il y en a)
String line = "";
while( (line=inputDataFile.readLine()) != null ) {
// line = CMD <= admin log "CVMX: 2 content =metrics:AM:vocal"
System.out.println("ligne en cours de traitement : " + line);
//on coupe la ligne en 2 :
String [] sa = line.split(" =");
//sa[0] = "CMD <= admin log "CVMX: 2 content"
//sa[1] = "metrics:AM:vocal""
//suppression du caractere " en fin de chaine
sa[1] = sa[1].substring(0, sa[1].length()-1);
String [] sb = sa[1].split(":");
//sb[0] : le mot cle (on s'en fiche) netmetrics
//sb[1] : le nom du tag
//sb[2] : la valeur du tag (optionnel)
// System.out.println("la ligne" + sb[0]);
if(sb[0]!="netmetric")
{
try {
outputXmlFile.println("<tag name=\"" + sb[0] + "\" value=\"" + sb[1] + "\"/>");
} catch (Exception e) {
outputXmlFile.println("<tag name=\"" + sb[0] + "\" value=\"" + "null" + "\"/>") ;
}
}
else
{
try {
outputXmlFile.println("<tag name=\"" + sb[0] + "\" value=\"" + sb[1] + "\"/>");
} catch (Exception e) {
outputXmlFile.println("<tag name=\"" + sb[0] + "\" value=\"" + "null" + "\"/>") ;
}
}
}
outputXmlFile.close();
inputDataFile.close();
} catch (Exception ex) {
System.out.println(ex);
}
}
public static void main(String [] args) throws IOException {
Ecrirefichier bab =new Ecrirefichier(args[0]);
}
}
de plus, il y a une faute d'hortographe à netmetrics : ca prend un s
du coup tu tombais tous le temps dans le if(sb[0]!="netmetric") qui ne fonctionne pas en java
il faut utiliser String.equals(" ");
ou String.compare(" ");