Bonjour a tous,
je souhaite récupérer les données de fichiers xml, la partie qui m'intéresse est comprise entre <entry id=" "> et </entry>
la balise qui suit est soit <article> soit <incollection>
puis les champs sont presque toujours les mêmes a 95%
exemple de fichier xml :
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?xml version="1.0" encoding="UTF-8" ?> - <file xmlns="http://bibtexml.sf.net/"> - <metadata xmlns:dc="http://purl.org/dc/elements/1.1/"> <dc:date>2008-01-16T14:46:59+0100</dc:date> <dc:format>text/xml</dc:format> <dc:identifier>urn:uuid:430da0cf-98d7-41af-b0ec-0d6595484b68</dc:identifier> </metadata> - <entry id="MR2255532"> - <article> <author>Perron, Bernard</author> <title>A homotopic intersection theory on surfaces: applications to mapping class group and braids</title> <journal>Enseign. Math. (2)</journal> <fjournal>L'Enseignement Mathématique. Revue Internationale. IIe Série</fjournal> <volume>52</volume> <year>2006</year> <number>1-2</number> <pages>159-186</pages> <issn>0013-8584</issn> <coden>ENMAAR</coden> <mrclass>57M50 (20F65 57M05 57M25)</mrclass> <mrnumber>MR2255532 (2008a:57020)</mrnumber> <mrreviewer>Andrew Putman</mrreviewer> </article> </entry> </file>
Je souhaite donc tester si la balise article existe ou non si oui je récupère les informations qu'elle contient...
Voici mon code
Hors $res_rech_article[0] ne contient rien pourtant je recherche sur le fichier xml donné en exemple.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?php $xml = simplexml_load_file('livres.xml'); foreach ($xml->entry as $entry) { print "\nID {$entry['id']} <br />\n"; //balise rechercher $rech_article = "//article"; //stockage du resultat $res_rech_article = $xml->xpath($rech_article); //affichage echo $res_rech_article[0]; if ($res_rech_article == "article") { foreach ($entry->article as $article) { $auteur = $article->author; $titre = $article->titre; //... } } } ?>
J'aimerai savoir si je procède de la bonne façon, si oui comment résoudre mon problème, si non comment faire.
Merci d'avance.
Partager