Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML
XML Forum d'entraide sur XML avec PHP. Exemples : SimpleXML, OpenXML... Avant de poster -> FAQ XML, Cours XML et Sources XML
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 11/08/2011, 10h31   #1
Membre habitué
 
Inscription : août 2004
Messages : 541
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 541
Points : 118
Points : 118
Par défaut lecture d'un fichier xml

Bonjour,

Je me permets de revernir vers vous, car maintenant j'ai un nouveau pb avec un pseudo fichier xm, dont voici une petite partie:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
<SERVICEPROV>
		<POSTE>
			<LIBELLE>EQUIPE</LIBELLE>
			<NATURE>FtTime</NATURE>
		</POSTE>
		<POSTE>
			<LIBELLE>CREW</LIBELLE>
			<NATURE>FtTime</NATURE>
		</POSTE>
---
----
---
Je réussie bien à récupérer les valeurs, mais de façon indépendante, c'est a dire que je récupere LIBELLE et ensuite je récupère NATURE

Code :
1
2
3
4
5
6
7
8
9
10
11
 
 
$SERVICEPROV = $dom->getElementsByTagName('SERVICEPROV')->item(0);
$LIBELLESERVICEPROV = $SERVICEPROV->getElementsByTagName('LIBELLE');
foreach($LIBELLESERVICEPROV as $LIBELLE)
	echo $LIBELLE->firstChild->nodeValue . "<br />";  
 
$SERVICEPROV = $dom->getElementsByTagName('SERVICEPROV')->item(0);
$NATURESERVICEPROV = $SERVICEPROV->getElementsByTagName('NATURE');
foreach($NATURESERVICEPROV as $NATURE)
	echo $NATURE->firstChild->nodeValue . "<br />";
voila ce que cela donne

Citation:
EQUIPE
CREW
FtTime
FtTime
et je voudrais pouvoir les récuperer c'est le résultat suivant :

Citation:
EQUIPE FtTime
CREW FtTime
je sais que vu ce que j'ai écris le résultat ne pouvais être autrement mais je ne réussie pas à récuppérer la NATURE en même temps que le LIBELLE

pouvez-vous me dire comment le faier

par ailleurs existe-t-il une fonction permettant de retrouver un noeud en fonction de sa valeur
par exemple retrouver le noeud
Citation:
<SERVICEPROV>/<POSTE>/<LIBELLE>
lorsque je rentre la valeur EQUIPE

Cordialement
Qays
QAYS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 10h36   #2
Modérateur
 
Avatar de FirePrawn
 
Homme Sébastien
Ingénieur réalisateur
Inscription : mars 2011
Messages : 773
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Âge : 24
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Ingénieur réalisateur
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 773
Points : 2 332
Points : 2 332
Bonjour,

Va faire un tour ici
__________________
- Avant toute chose : lire le mode d'emploi du forum et ses règles.
- avant de poster
- Je ne réponds pas aux questions techniques en MP.
FirePrawn est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 11h07   #3
Membre habitué
 
Inscription : août 2004
Messages : 541
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 541
Points : 118
Points : 118
Bonjour,

merci de votre réponse, et en fait je me suis servi de cette page pour faire ce que j'ai déja fait, mais comme indiqué je n'arrive à lire en même temps c'est à dire dans la même boucle la valeur Nature et Libelle,

je vais comme même relire ce doc peut être que j'ai loupé un truc

merci
Qays
QAYS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 11h43   #4
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 011
Points : 5 011
Utilise DOMXPath:
- http://php.net/manual/en/class.domxpath.php
- http://www.w3schools.com/xpath/xpath_syntax.asp
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/08/2011, 10h56   #5
Membre habitué
 
Inscription : août 2004
Messages : 541
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 541
Points : 118
Points : 118
Bonjour,

je me permets de revenir vers vous car vraiment je bloque

voila le code :

Code :
1
2
3
4
5
6
7
8
9
10
11
 
$Doc = new DomDocument();
$Doc->load('prm/file.xml');
$messageNode = $Doc->getElementsByTagName('SERVICEPROV')->item(0);
$messageSousNode = $messageNode->getElementsByTagName('POSTE')->item(0);
echo 'messageNode->tagName:'.$messageSousNode->tagName. "<br />";  
echo 'messageNode->childNodes->length:'.$messageSousNode->childNodes->length . "<br />";  
echo 'messageNode->firstChild->nodeValue:'.$messageSousNode->firstChild->nodeValue . "<br />";
echo 'messageNode->nextSibling->nodeValue:'.$messageSousNode->nextSibling->nodeValue . "<br />";
echo 'messageNode->parentNode->nodeValue:'.$messageSousNode->parentNode->nodeValue . "<br />";
echo 'messageNode->parentNode->nodeValue:'.$messageSousNode->parentNode->localName . "<br />";
voila le fichier xml

Citation:
<SERVICEPROV>
<POSTE>
<LIBELLE>EQUIPE</LIBELLE>
<NATURE>FtTime</NATURE>
</POSTE>
<POSTE>
<LIBELLE>CREW</LIBELLE>
<NATURE>FtTime</NATURE>
</POSTE>
<POSTE>
<LIBELLE>MENAGE</LIBELLE>
<NATURE>FtTime</NATURE>
</POSTE>
<POSTE>
<LIBELLE>CATERING</LIBELLE>
<NATURE>FtTime</NATURE>
</POSTE>
<POSTE>
<LIBELLE>FUEL</LIBELLE>
<NATURE>FtTime</NATURE>
</POSTE>
<POSTE>
<LIBELLE>BAGARV</LIBELLE>
<NATURE>FtTime</NATURE>
</POSTE>
<POSTE>
<LIBELLE>BAGDEP</LIBELLE>
<NATURE>FtTime</NATURE>
</POSTE>
<POSTE>
<LIBELLE>BUS</LIBELLE>
<NATURE>FtTime</NATURE>
</POSTE>
<POSTE>
<LIBELLE>EMBAR</LIBELLE>
<NATURE>FtTime</NATURE>
</POSTE>
<POSTE>
<LIBELLE>RECHERCHE</LIBELLE>
<NATURE>FtTime</NATURE>
</POSTE>
<POSTE>
<LIBELLE>FERM</LIBELLE>
<NATURE>FtTime</NATURE>
</POSTE>
</SERVICEPROV>
et voila le résultat

Citation:
messageNode->tagNameOSTE
messageNode->childNodes->length:5
messageNode->firstChild->nodeValue:
messageNode->nextSibling->nodeValue:
messageNode->parentNode->nodeValue: EQUIPE FtTime CREW FtTime MENAGE FtTime CATERING FtTime FUEL FtTime BAGARV FtTime BAGDEP FtTime BUS FtTime EMBAR FtTime RECHERCHE FtTime FERM FtTime
messageNode->parentNode->nodeValue:SERVICEPROV
je ne comprend pas le 5, pourquoi firstvalue est null

en résumé je ne comprend pas le fonctionnement



merci de votre aide
QAYS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/08/2011, 19h50   #6
Membre habitué
 
Inscription : août 2004
Messages : 541
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 541
Points : 118
Points : 118
bONJOUR?

a Yest j'ai commencer à trouver des solutions
QAYS est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h52.


 
 
 
 
Partenaires

Hébergement Web