IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XML/XSL et SOAP Discussion :

[XML] Parser un fichier XML - SimpleXML


Sujet :

XML/XSL et SOAP

  1. #1
    Membre averti
    Inscrit en
    Janvier 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 25
    Par défaut [XML] Parser un fichier XML - SimpleXML
    Bonjour à tous,

    je suis débutant en XML et je dois pouvoir parser un document XML que l'on ma donné, le voici :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
     
    <?xml version="1.0" encoding="UTF-8" ?>
    <FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult">
    <ERRORCODE>0</ERRORCODE>
    <PRODUCT BUILD="08-11-2005" NAME="FileMaker Pro" VERSION="8.0v1"/>
    <DATABASE DATEFORMAT="D/m/yyyy" LAYOUT="" NAME="RANGES" RECORDS="54" TIMEFORMAT="k:mm:ss "/>
    	<METADATA>
    		<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="range_id" TYPE="NUMBER"/>
    		<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Libellé gamme" TYPE="TEXT"/>
    	</METADATA>
    <RESULTSET FOUND="5">
    	<ROW MODID="51" RECORDID="1">
    		<COL>
    			<DATA>1</DATA>
    		</COL>
    		<COL>
    			<DATA>DD ICE</DATA>
    		</COL>
    	</ROW>
    	<ROW MODID="51" RECORDID="2">
    		<COL>
    			<DATA>2</DATA>
    		</COL>
    		<COL>
    			<DATA>DD AluICE</DATA>
    		</COL>
    	</ROW>
    	<ROW MODID="51" RECORDID="3">
    		<COL>
    			<DATA>3</DATA>
    		</COL>
    		<COL>
    			<DATA>DD Silverdrive</DATA>
    		</COL>
    	</ROW>
    	<ROW MODID="52" RECORDID="4">
    		<COL>
    			<DATA>4</DATA>
    		</COL>
    		<COL>
    			<DATA>DD FireRack</DATA>
    		</COL>
    	</ROW>
    	<ROW MODID="51" RECORDID="5">
    		<COL>
    			<DATA>5</DATA>
    		</COL>
    		<COL>
    			<DATA>DD Cryptodisk</DATA>
    		</COL>
    	</ROW>
         </RESULTSET>
    </FMPXMLRESULT>
    Mon fichier PHP pour le parser doit ressembler plus ou moins à ça mais je comprends pas grand chose (c'est un fichier qui traite un autre document XML que celui ou j'ai copié le code)

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    <?
    		$xml_file = 'test.xml';
     
    		if ( is_file($xml_file) ) {
     
    				if ($FMPDSORESULT = simplexml_load_file($xml_file)) { 
     
      				foreach($FMPDSORESULT->product as $product) {
    						$product_id 					= intval($product->id);
    						$product_type 				= $product->type;
    						$product_capacity			= $product->capacity;
    						$product_stock 				= $product->stock;
    						$product_prices				= $product->prices;
    						$product_prices_array	= array();
    						foreach ($product_prices->price as $price) {
    							$product_prices_array[] = array(
    								'cat' 		=> $price['cat'],
    								'price'		=> $price
    							);
    						}
     
    						echo "<br><br>product_id : $product_id";
    						echo "<br>product_type : $product_type";
    						echo "<br>product_capacity : $product_capacity";
    						echo "<br>product_stock : $product_stock";
    						echo "<br>product_prices : ";
    						for ($i=0; $i<count($product_prices_array); $i++) { 
    							echo $product_prices_array[$i]['cat'] . ":" . $product_prices_array[$i]['price'] . " "; 
    						}
    					}
    				}
    				else {
      				echo "Le fichier XML spécifié ($xml_file) semble mal formaté.";		
    				}
    		}
    		else {
      		echo "Le fichier XML spécifié ($xml_file) n'a pas été trouvé .";		
    		}
     
    ?>
    Si vous avez une méthode plus facile libre à vous, si qq pouvait m'apporter de l'aide svp ce serait super sympa

  2. #2
    Membre averti
    Inscrit en
    Janvier 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 25
    Par défaut
    Un ami m'a aidé à trouver donc je met la solution pour ceux que ça intéresserait dans le futur :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $file = "test.xml";
    if (file_exists($file)) {
    	$xml = simplexml_load_file($file);
     
    	foreach ($xml->RESULTSET->ROW as $row) {
    		$id 		= $row->COL[0]->DATA;
    		$libelle	= $row->COL[1]->DATA;
    		echo "id : ".$id." libellé : ".$libelle."<br />";
    	}  
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Diviser un fichier XML en plusieurs fichiers XML avec XSLT
    Par bobkorn dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 18/04/2008, 12h13
  2. Decomposé un fichier XML en plusieurs fichiers XML sous python
    Par elhout dans le forum Général Python
    Réponses: 6
    Dernier message: 12/03/2007, 14h20
  3. [XSLT] transfo d'un fichier XML en plusieurs fichiers XML
    Par doudou_rennes dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 28/11/2006, 12h01
  4. [XSLT]transformer un fichier XML en en fichier XML
    Par alexandra dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 16/08/2006, 14h26
  5. Réponses: 4
    Dernier message: 31/07/2006, 09h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo