Flux xml

9 réponses
AuteurMessage

Zalex14 |
Modérateur

Photo de Zalex14

Inscrit le : 09/05/2005

# Le 19/06/2005 à 17:06

Je suis une brèle en xml et j'ai besoin d'un coup de main.
d'habitude je parse des fichiers simples du type :


<product>
<id>1</id>
<manufacturer>nom</manufacturer>
<productName>truc</productName>
<price>100</price>
<url>http:/www.</url>
</product>


Pas de soucis, mais là je dois parser ça et j'arrive pas à choper les valeurs de item,categ et url:


<PRODUCT ITEM="214" CATEG="68">
<manufacturer>nom</manufacturer>
<productName>truc</productName>
<price>100</price>
<URL value="http:/www." />
</PRODUCT>


quelqu'un aurait un bout de code ou une adresse ?

Mieux vaut s'attendre au prévisible que d'être surpris par l'inattendu.

erwinol | Erwin
Membre

Photo de erwinol

Inscrit le : 09/05/2005

# Le 19/06/2005 à 17:13

En gros tu parviens à récupérer les éléments mais pas les attributs.

Quelle méthode utilises-tu pour parser ton fichier ?

Si tu utilises Expat, tu récupéres tous les attributs de l'élément tout simplement dans un tableau, c'est géré par les évènements.

Zalex14 | Alexandre
Modérateur

Photo de Zalex14

Inscrit le : 09/05/2005

# Le 19/06/2005 à 17:21

oui c'est Expat.
Tu fais comment concretement pour récupérer les attributs ?
t'aurais pas un exemple ?

Mieux vaut s'attendre au prévisible que d'être surpris par l'inattendu.

erwinol | Erwin
Membre

Photo de erwinol

Inscrit le : 09/05/2005

# Le 19/06/2005 à 18:39

Chaque fois que le parseur rencontre un nouvel élément, un évènement sera lancé et exécutera la fonction startElement ... j'imagine que tu as déjà manipulé ça.

Tu définis donc la fonction :

function startElement($parser, $tagName, $attr) {

$tagName contiendra le nom de l'élément en majuscule et $attr est un tableau associatif contenant tous les attributs de l'élément.

Pour parser ton fichier, tu dois mettre dans la fonction :

global $item, $categ;
switch($tagName){
// si le parseur rencontre l'élément "product"
case "PRODUCT" :
$item = $attr["ITEM"];
$categ = $attr["CATEG"];
break;
case "..." : ... ; break;
default : ... ; break ;
}


Je ne t'ai mis le code que pour l'élément product, pour les autres, tu ajoutes simplement dans le switch.

Ca t'aide ?

(Message édité le 19-06-2005 à 19h32 par erwinol)

Zalex14 | Alexandre
Modérateur

Photo de Zalex14

Inscrit le : 09/05/2005

# Le 19/06/2005 à 18:51

ok, merci beaucoup !

Mieux vaut s'attendre au prévisible que d'être surpris par l'inattendu.

Protanim | Bop
Membre

 

Inscrit le : 09/05/2005

# Le 25/06/2005 à 00:22

J'essaye de me lancer dans le XML et ça fait 3 heures que j'essaye de trouver un bon site qui explique comment parser.
J'y comprend pas chose.

Quel est le moyen le plus simple pour débuter ?

Avez vous une site à me conseiller ?

C'est pour parser du xml de FCN.

Merci

JeromeF | Jérôme
Membre

 

Inscrit le : 10/05/2005

# Le 25/06/2005 à 01:29

php5 et simpleXML intégré, le top pour moi

mirage | Vincent
Modérateur

Photo de mirage

Inscrit le : 04/05/2005

# Le 25/06/2005 à 10:18

Vous êtes passés à php5 sur vos serveurs ou bien c'est en local ? (je viens de voir que la 5.1 bêta 2 vient de sortir et faudrait que je teste)

LePhasme | Guillaume
Membre

Photo de LePhasme

Inscrit le : 09/05/2005

# Le 25/06/2005 à 12:01

Lol ca me fait marrer Protanim car moi c'etait la semaine dernière.
J'ai passé 3 jours à me faire une appli qui lit le XML et le fou dans la BDD directement...

Paris Apartments RentalsOuvrir dans une nouvelle fenetre Avertisseur Autonome de FumeeOuvrir dans une nouvelle fenetre ViadeoOuvrir dans une nouvelle fenetre

erwinol | Erwin
Membre

Photo de erwinol

Inscrit le : 09/05/2005

# Le 26/06/2005 à 11:40

3 jours pour parser du XLM et le mettre dans la DB ? Faut arrêter de boire quand vous codez les gars

Répondre

Vous ne pouvez pas participer au forum, car votre inscription n'a pas été validée. Pour vous faire valider en tant que Membre, cliquez ici.

© MHN - Tous droits réservés | CNIL N°844440 | 23/11/2024 18:46:13 | Généré en 6.15ms | Contacts | Mentions légales |