rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

PHP5 et XML, parser en fonction de l'attribut

Posté par sly-bzh, le mardi 12 février 2008 à 11:37:12
Bonjour à tous et toutes,

Je viens vous voir avec un prblème sur lequel je bute depuis maintenant plus d'une heure.
Voilà j'ai un fichier XML (accessible en entier ici http://beta.uniprot.org/uniprot/A0A373.xml ) de la forme suivante :
-<uniprot xsi:schemaLocation="http://uniprot.org/uniprot http://www.uniprot.org/support/docs/uniprot.xsd">
  -<entry dataset="Swiss-Prot" created="2007-02-06" modified="2007-10-02" version="5">
    <accession>A0A373</accession>
    <name>RK16_COFAR</name>
    ...
    -<comment type="subunit">
        <text>Part of the 50S ribosomal subunit.</text>
    </comment>
    -<comment type="subcellular location">
        <text>Plastid, chloroplast.</text>
    </comment>
    ...
  </entry>
</uniprot>


Oui je sais c'est de la bio mais n'ayez pas peur, je ne vous parlerais pas de bio je le jure !

Ce que je souhaiterais faire c'est récupérer ce qu'il y a entre les balises <text> lorsque l'attribut de la balise <comment> est "subcellular location".

Je pense que c'est assez clair mais si vous voulez plus d'infos, n'hésitez pas, je suis là

D'avance merci
Proverbes breton :
Si les mouettes ont pied, il est temps de virer
Il vaut mieux être saoul que con, ça dure moins longtemps
Configuration: Windows XP
Firefox 2.0.0.12
Répondre à sly-bzh  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Thamior, le mardi 12 février 2008 à 11:41:29
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.
Répondre à Thamior

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
sly-bzh, le mardi 12 février 2008 à 11:48:45
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...)
$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 Proverbes breton :
Si les mouettes ont pied, il est temps de virer
Il vaut mieux être saoul que con, ça dure moins longtemps
Répondre à sly-bzh

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Thamior, le mardi 12 février 2008 à 11:52:35
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.
Répondre à Thamior

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
sly-bzh, le mardi 12 février 2008 à 14:35:02
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.

$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 Proverbes breton :
Si les mouettes ont pied, il est temps de virer
Il vaut mieux être saoul que con, ça dure moins longtemps
Répondre à sly-bzh

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Thamior, le mardi 12 février 2008 à 15:16:24
Je ne connais pas d'autres boucles pour utiliser le DOM que le foreach...

Je ne peux pas t'aider plus... désolé...

Thamior.
Répondre à Thamior

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 sly-bzh, le mardi 12 février 2008 à 15:22:24
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 ! Proverbes breton :
Si les mouettes ont pied, il est temps de virer
Il vaut mieux être saoul que con, ça dure moins longtemps
Répondre à sly-bzh
Logiciels pertinents trouvés dans les téléchargements
Télécharger DriveImage XML 1.30DriveImage XML - DriveImage XML est un programme permettant de faire des images du système (partitions et lecteurs logiques) à des fins de...Catégorie: Sauvegarde
Licence: Freeware/gratuit
Télécharger WAMP Server 2.0cWAMP Server - WAMP5 (WAMP signifiant Windows Apache Mysql PHP) est une plateforme de développement Web sous Windows. Il vous permet de...Catégorie: Serveurs
Licence: Freeware/gratuit
Télécharger FreeMind 0.8.1FreeMind - FreeMind est un logiciel de Mind mapping entièrement libre, permettant de créer des cartes heuristiques permettant de...Catégorie: Organisation
Licence: Open Source
Télécharger PSPad 4.5.2PSPad - PSPad est un excellent éditeur de texte. Il est utile pour travailler sur du simple texte, mais aussi sur du HTML, CSS,...Catégorie: Développement
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « PHP5 et XML, parser en fonction de l'attribut »