Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > SimpleXML
SimpleXML Forum d'entraide pour l'extension SimpleXML, qui permet de manipuler des documents XML en PHP (approche DOM).
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/02/2007, 09h57   #1
Invité de passage
 
Inscription : février 2007
Messages : 18
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 18
Points : 4
Points : 4
Par défaut [SimpleXML] Parsage complexe

Bonjour à tous,

J'ai quelques difficultés pour parser des fichiers xml très merdiques (voir les pièces-jointes). Ces fichiers me sont fournis par une société (ce sont des communiqués de presse) et j'ai besoin de récupérer quelques informations de ces fichiers pour les mettre dans une base de données.

Voici mon script actuel :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
if($dh = opendir('/home/web/***')) {
	while(($flux = readdir($dh)) !== false) {
		if($flux != '.ftpquota' AND $flux != 'index.html' AND $flux != '.' AND $flux != '..' AND !empty($flux)) {
			echo '<strong>'.$flux.'</strong><br />';
			$xml = simplexml_load_file('/home/web/***/'.$flux);
			foreach($xml->NewsItem->NewsComponent->DescriptiveMetadata as $meta)
			echo "\tLangue : ".$meta->Language['FormalName']."<br />";
			foreach($xml->NewsItem->NewsComponent->NewsComponent->NewsLines as $lines)
				echo "\tTitre : ".$lines->HeadLine."<br />";
		}
	}
}
closedir($dh);
Comme vous le voyez avec le code ci-dessus, j'arrive sans soucis à récupérer le titre et la langue dans le flux mais je voudrais récupérer "<MimeType FormalName="text/plain" />" à la fin du fichier mais je n'y parviens pas (le "Duid" du "ContentItem" change sur chaque flux donc impossible de se référer à cette valeur pour parser le flux, c'est bien là le problème !).

Merci par avance pour votre aide !
Fichiers attachés
Type de fichier : xml 20070208005968r1.xml (18,1 Ko, 5 affichages)
Type de fichier : xml 20070209005398r1.xml (5,4 Ko, 2 affichages)
mirage28 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2007, 16h47   #2
Membre éprouvé
 
Avatar de goodpz
 
Inscription : février 2007
Messages : 475
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 475
Points : 474
Points : 474
Pour récupérer le ContentItem/MimeType du dernier NewsComponent, si c'est bien ce que j'ai compris, tu peux utiliser Xpath comme ceci:

Code :
//NewsComponent/NewsComponent/NewsComponent[last()]
En admetant qu'il y ait toujours ces 3 niveaux d'imbrication de NewsComponent. Avec cette requête Xpath tu chopes le dernier NewsComponent
goodpz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2007, 22h21   #3
Invité de passage
 
Inscription : février 2007
Messages : 18
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 18
Points : 4
Points : 4
Merci, c'est ce qu'il me fallait
mirage28 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h34.


 
 
 
 
Partenaires

Hébergement Web