[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:
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 :oops: (c'est un fichier qui traite un autre document XML que celui ou j'ai copié le code)
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 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 :)