PHP5 et XML, parser en fonction de l'attribut
Résolu/Fermé
sly-bzh
Messages postés
415
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
5 décembre 2009
-
12 févr. 2008 à 11:37
sly-bzh Messages postés 415 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 5 décembre 2009 - 12 févr. 2008 à 15:22
sly-bzh Messages postés 415 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 5 décembre 2009 - 12 févr. 2008 à 15:22
A voir également:
- Xml parser error
- Xml download - Télécharger - Édition & Programmation
- Office xml handler - Télécharger - Traitement de texte
- Cmos checksum error ✓ - Forum Carte-mère/mémoire
- Msxml 4.0 sp3 parser - Forum Logiciels
- Error 0x80070643 - Accueil - Windows
6 réponses
sly-bzh
Messages postés
415
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
5 décembre 2009
118
12 févr. 2008 à 14:35
12 févr. 2008 à 14:35
Etant donné que je ne suis pas Breton pour rien, je me suis entêté avec simplexml (je l'avoue ce n'est pas tant parce que je suis tétu que parce que je suis fainéant et DOM me faisait peur....)
Donc voilà ce que j'ai trouvé et surtout ce que j'ai réussi à faire.
Certes, ça marche mais bon j'aurais aimé savoir s'il était possible de le faire sans passer par une boucle foreach parceque j'ai inclus ça dans un script assez lourd, il doit aller chercher des infos sur environ 100 000 protéines donc je cherche toutes les possibilités pour accélérer tout ça.
Si c'est possible de le faire sans boucle tant mieux mais sinon tant pis, je suppose que de toutes façon ce n'est pas tant que ça la boucle qui va ralentir, étant donné qu'il va chercher le xml sur un site éloigné.
Merci de votre réponse
Donc voilà ce que j'ai trouvé et surtout ce que j'ai réussi à faire.
$xml = simplexml_load_file('http://beta.uniprot.org/uniprot/A0T0M2.xml'); foreach($xml->entry[0]->comment as $comment) { switch((string) $comment['type']){ case 'subcellular location': $location=$comment->text; echo "<BR /> la localisation subcellulaire de la protéine est : ".$location; if ($location == '%chloroplast%') {$nbre_chloro++;} break; } }
Certes, ça marche mais bon j'aurais aimé savoir s'il était possible de le faire sans passer par une boucle foreach parceque j'ai inclus ça dans un script assez lourd, il doit aller chercher des infos sur environ 100 000 protéines donc je cherche toutes les possibilités pour accélérer tout ça.
Si c'est possible de le faire sans boucle tant mieux mais sinon tant pis, je suppose que de toutes façon ce n'est pas tant que ça la boucle qui va ralentir, étant donné qu'il va chercher le xml sur un site éloigné.
Merci de votre réponse
Thamior
Messages postés
264
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
18 mars 2014
47
12 févr. 2008 à 11:52
12 févr. 2008 à 11:52
En faite, SimpleXML c'est du DOM mais en très simplifié.
J'ai fait un code quasi similaire à ce que tu veux faire et j'ai été obligé d'utiliser le DOM.
Le DOM est plus complet, tu devrais donc trouver toutes les fonctions dont tu as besoin.
Thamior.
J'ai fait un code quasi similaire à ce que tu veux faire et j'ai été obligé d'utiliser le DOM.
Le DOM est plus complet, tu devrais donc trouver toutes les fonctions dont tu as besoin.
Thamior.
Thamior
Messages postés
264
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
18 mars 2014
47
12 févr. 2008 à 11:41
12 févr. 2008 à 11:41
Bonjour,
Tu peux y arriver en utilisant le DOM.
Regarde sur ce site : http://fr.php.net/dom tu as toutes les fonctions du DOM pour le faire.
Thamior.
Tu peux y arriver en utilisant le DOM.
Regarde sur ce site : http://fr.php.net/dom tu as toutes les fonctions du DOM pour le faire.
Thamior.
sly-bzh
Messages postés
415
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
5 décembre 2009
118
12 févr. 2008 à 11:48
12 févr. 2008 à 11:48
J'étais pluôt parti pour utiliser le simplexml et j'avais déja "créé" ça (oui je sais j'ai oublié de le mettre dans le premier post...)
Mais évidemment ça marche pas sinon je serais pas ici XD
Simplexml m'avait l'air plus simple à utiliser que le DOM mais bon je vais voir avec le DOM
Merci
$xml = simplexml_load_file('http://beta.uniprot.org/uniprot/A0A373.xml'); $subcellular_location = $xml->entry[0]->comment['value="subcellular location"']; echo "<BR /> la localisation subcellulaire de la protéine est : ".$subcellular_location;
Mais évidemment ça marche pas sinon je serais pas ici XD
Simplexml m'avait l'air plus simple à utiliser que le DOM mais bon je vais voir avec le DOM
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Thamior
Messages postés
264
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
18 mars 2014
47
12 févr. 2008 à 15:16
12 févr. 2008 à 15:16
Je ne connais pas d'autres boucles pour utiliser le DOM que le foreach...
Je ne peux pas t'aider plus... désolé...
Thamior.
Je ne peux pas t'aider plus... désolé...
Thamior.
sly-bzh
Messages postés
415
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
5 décembre 2009
118
12 févr. 2008 à 15:22
12 févr. 2008 à 15:22
Pas de problème. De toutes façon maintenant que c'est parti j'en ai pour quelques dizaines d'heures et une fois que ce sera fait je n'aurais plus à le refaire...
Merci qund même !
Merci qund même !