|
|
|
|
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>
Configuration: Windows XP Firefox 2.0.0.12
Bonjour,
|
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 |
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....)
$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 |
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...
|