[XML] Récupération base XML
Bonjour à tous,
voila je dois récupérer des donner stocké dans un fichier XML, j'ai trouve une méthode pour mettre le contenu du XML dans un tableau type Object, mais je ne sais pas comment récupérer que certaine données
Voici le contenu xml pour mon test:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
<?xml version="1.0"?>
<biens>
<bien>
<name>test1</name>
<symbol>ala</symbol>
<code>A</code>
<type>hydrophobic</type>
</bien>
<bien>
<name>test2</name>
<symbol>lys</symbol>
<code>K</code>
<type>charged</type>
</bien>
</biens> |
Voici le code qui créer l'objet:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
class BienList {
function BienList ($aa) {
foreach ($aa as $k=>$v)
$this->$k = $aa[$k];
}
}
function readDatabase($filename) {
// lit la base de données xml des acides aminés
$data = implode("",file($filename));
$parser = xml_parser_create();
xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);
xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
xml_parse_into_struct($parser,$data,$values,$tags);
xml_parser_free($parser);
// boucle à travers les structures
foreach ($tags as $key=>$val) {
if ($key == "bien") {
$molranges = $val;
// each contiguous pair of array entries are the
// lower and upper range for each molecule definition
for ($i=0; $i < count($molranges); $i+=2) {
$offset = $molranges[$i] + 1;
$len = $molranges[$i + 1] - $offset;
$tdb[] = parseMol(array_slice($values, $offset, $len));
}
} else {
continue;
}
}
return $tdb;
}
function parseMol($mvalues) {
for ($i=0; $i < count($mvalues); $i++)
$mol[$mvalues[$i]["tag"]] = $mvalues[$i]["value"];
return new BienList($mol);
}
$db = readDatabase("moldb.xml");
echo "** Base des biens :\n";
print_r($db); |
J'aimerai par exemple récupérer que les noms de molécules comment je peux faire ça???