[DOM] lecture d'un fichier xml
Bonjour,
j'ai un fichier xml avec la structure suivant, que je n'arrive pas a lire les champs de différentes balises
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
| <?xml version="1.0" encoding="UTF-8"?>
<mysql>
<database name="personnes">
<table>
<fiche>
<var name="id">1380</var>
<var name="nom">Clark</var>
<var name="prenom">Jon</var>
<var name="statut">Stud</var>
<var name="formation">ing.,M.Sc.A.</var>
<var name="ancien">false</var>
<var name="Login">P234</var>
<var name="pageWebPerso" generation="auto">http://www.web.com/p234</var>
<var name="photo">none</var>
<var name="distinctions" generation="auto"></var>
<var name="implicationprojet">
<projet>project1</projet>
<projet>project2</projet>
<projet>project3</projet>
<projet>project4</projet>
</var>
<var name="tel"></var>
<var name="local"></var>
<var name="courriel">hooyu@yahoo.com</var>
<var name="implicationlabo">
<laboratoire>lab1</laboratoire>
<laboratoire>lab2</laboratoire>
<laboratoire>lab3</laboratoire>
<laboratoire>lab4</laboratoire>
</var>
</fiche>
</table>
</database>
</mysql> |
ce que je veux c'est pouvoir récupérer le nom et les projets
c-a-d: pouvoir lister
Jon Clark
project1, project2, project3...
j'ai écrit ce bout de code mais ça ne marche pas je sais pas comment remédier à ce problème
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
| <?php
function getVarByName($fiche, $name)
{
$xpath = new DOMXPath($fiche->ownerDocument);
$res = $xpath->query(sprintf($name), $fiche);
if (!$res or $res->length == 1) {
return $res->item(0)->nodeValue;
} else {
return FALSE;
}
}
$fichier_xml = 'personnes.xml';
$dom = new DomDocument;
$dom->preserveWhiteSpace = FALSE;
$dom->formatOutput = TRUE;
$dom->load($fichier_xml);
$i=0;
foreach ($dom->getElementsByTagName('fiche') as $fiche)
{
$var1=utf8_decode(getVarByName($fiche->var[@name='nom']));
$var3=utf8_decode(getVarByName($fiche->var[@name='prenom']));
echo'nom et prenom'.$var1.$var3;
$var2=utf8_decode(getVarByName($fiche->var[@name='projet']));
echo'projets'.$var2;
}
?> |
merci pour votre aide