Aller au menu - Aller au contenu

[DOM] Parser du XML - L'exemple du zCode

Pour accéder à cette section
Connectez-vous !
connexion_rpx
Page Précédente  1  2  3  4  5  6 
Pseudo Commentaire
Page Précédente  1  2  3  4  5  6 
Hors ligne mika2008 # Posté le 22/04/2010 à 13:39:01
Avatar

Études : IUT Bordeaux 1

Bonjour, super tuto,
mais j'aimerais adapté pour importer des XML dans une base Mysql, vous avez des pistes svp ?
 
Hors ligne Pirotes31 # Posté le 26/07/2010 à 13:39:18
Avatar

bonjour,
je viens un peu en retard je sais, mais je rencontre un pb à l'utilisation du script de ce tutoriel (qui est très bien fait soit-dit en passant).
j'ai dans mes balises du fichier xml plusieurs attributs...
Or, grâce à votre tutoriel, je n epeux récupérer que le dernier attribut de mes balises...
Pouvez-vous m'aider?
D'avance merci!
Pirotes31.

Blonde attitude :euh: ..... à l'insu de mon plein gré c'est promis! :p
 
Hors ligne Nicolas M. # Posté le 30/08/2010 à 17:02:00
M(NiCoLaSm) = 406,9 g/mol
Avatar

Avis : Très bon

Ville : Notre-dame de bondeville
Pays : France métropolitaine

Citation : Paragraphe au-dessus de la zForm pour taper un commentaire
Nous vous rappelons que cet espace est réservé aux commentaires à propos des tutoriels, veillez donc à ne pas poser vos questions dans cette section.
Pour cela, rendez-vous sur le forum ! Merci.

Image utilisateur Image utilisateur

Le saviez-vous ? Les forums sont environ 283 174 fois plus efficaces que ma boîte MP pour vous aider. ;)
Image utilisateur
 
Hors ligne Yacininho # Posté le 22/11/2010 à 20:16:40

Bonjour a tous ! Dans le cadre d'un TD en cours j'ai un parsing a réalisé d'un fichier xml donc:

Code : XML
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
<rep>
<texte>
  <phrase id="P1">Il fait beau est chaud aujourd'hui.</phrase> 
  <phrase id="P2">Ce chat est beau, gentil et agréable, surtout aujourd'hui qu'il fait chaud.</phrase> 
  <phrase id="P3">Certains diraient qu'il est agréable mais distant même s'il est beau.</phrase>
</texte>

<relation idSource="P1" idCible="P2" tags="beau,aujourd'hui,chaud" /> 
<relation idSource="P2" idCible="P3" tags="agréable,beau" /> 
</rep>


J'ai réussis à extraire les phrases de la balise <texte> avec sax dans le terminal; pour <relation> je ne sais pas. Sachant que mon objectif est d'implémenter cela graphiquement ... Enfin je ne sais pas quoi faire de la string que j'ai extraite de <texte> car lorsque je fait un drawString les 3 phrases s'empattent je ne comprends pas.

Voici mon code java:

Code : Java
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
// création d'une fabrique de parseurs SAX
         SAXParserFactory fabrique = SAXParserFactory.newInstance();
			
         // création d'un parseur SAX
         SAXParser parseur = fabrique.newSAXParser();
			
         // lecture d'un fichier XML avec un DefaultHandler
         File fichier = new File("src/exemple1.xml");
         DefaultHandler gestionnaire = new DefaultHandler(){
        	 
         	public void characters(char[] ch, int start, int length) throws SAXException{   
         			
         			System.out.print(new String(ch,start,length)+"\n");
         			
			}
         };
         parseur.parse(fichier, gestionnaire);


Est-ce que vous pouvez m'aider s'il vous plait cela fait maintenant plus de 3 jours que je m'acharne sur google mais c'est super abstrait ce que je trouve.
MERCI :)
Connecté antoyo # Posté le 05/01/2011 à 23:39:49
GNU/Linux forever!
Avatar

Études : Cégep de rimouski

Salut,
merci pour ce super tutoriel.

Petite remarque, j’ai trouvé une astuce pour l’image :
Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
<?php
$balise_1 = array(
    []
    'image' => '<img alt="$1" src="',
    []
);

$balise_2 = array(
    []
    'image' => '"/>',
    []
);

Et plus besoin de faire un traitement spécial pour l’image :p .
(Je ne l’ai pas essayé avec un parseur DOM (j’en ai utilisé un basé sur les événements), mais ça devrait fonctionner.)

Encore merci pour ce tutoriel.

Mon extension pour Chrome/Chromium :
SaveAllPasswords : vous permet d’enregistrer vos mots de passe sur tous les sites Web (même ceux qui ne veulent pas :D ).
 
Hors ligne WibiMaster # Posté le 11/08/2011 à 06:56:22

Niquel comme tuto, très intéressant !
J'aurais aimé voir un système de correction du fichier XML généré, histoire d'éviter soit un message d'erreur, soit le "non-affichage" du ficheir en question, ou soit son "non-parsage". Mais bon, en cherchant bien, on trouve "parseHTML" qui permet de retourner une structure HTML valide, et en jouant dessus, on finit par retourner un XML validé :)

J'met 17/20, parce qu'un peu plus d'infos concernant l'UTF-8 et le correcteur de syntaxe aurait été sympatoche :)

[EDIT] Si tout de même, quelqu'un trouve comment faire pour que lorsque le parseur tombe sur quelquechose du style :
En fait c'est bon, suffit de tester si la balise est connue, sinon avec une petite boucle sur ses arguments on peut la réinsérer en encodant les < et > ^^
<balise_inconnue>texte</balise_inconnue>
Il retourne htmlspecialchars(<balise_inconnue>).texte.htmlspecialchars(</balise_inconnue>);
Ce serait bien utile ^^
Hors ligne Marie Collet # Posté le 08/03/2012 à 11:51:53

parfait ;)
Hors ligne Marie Collet # Posté le 22/03/2012 à 18:07:35

Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
foreach($enfants_niv1 as $enfant) // Pour chaque enfant, on vérifie…
        {
                if($enfant->hasChildNodes() == true) // …s'il a lui-même des enfants
                {
                        $accumulation .= parsage_enfant($enfant); // Dans ce cas, on revient sur parsage_enfant
                }
                else // ... s'il n'en a plus !
                {
                        $accumulation .= parsage_normal($enfant); // On parse comme un nœud normal
                }
        }
        return parsage_normal($noeud, $accumulation);


est ce que quelqu'un pourrait m'expliquer comment fait $accumulation pour parcourir, en plus des "feuilles", les autres noeuds? ici par exemple, comment le noeud "liste" passe t il dans parsage_normal? j'ai beau tout retourner dans ma tete, je ne comprends pas bien le systeme...
Pour accéder à cette section
Connectez-vous !
connexion_rpx