Découper fichier xml avec script php

Dargos -  
dargos Messages postés 3 Statut Membre -
Bonjour je désire découpé mon fichier xml qui est de la forme :
<xml...>
<list>
<p id="45"><img>kkk</img><property>gfdf</property></p>
<p id="76"><img>lll</img><property>lkjh</property></p>
etc ...
</list>

voila pour cela je ne sais pas si je dois utiliser plutot preg_split ou split
j'ai essayé ce bout de code :
$file="refrance.xml";
$myFile=fopen($file,"r+");
$content=fread($myFile,filesize($file));
$tab=split('#<p id=\"[0-9]*\">(.*)</p>#', $content);

echo "<pre>";
print_r($tab);
echo "</pre>";

fclose($myFile);
?>


Je vous explique ce que je veux obtenir, je désire avoir un tableau associatif de type
$tab[45]= <xml...><img>kkk</img><property>gfdf</property>
$tab[76]=<xml...><img>....</property>

Donc je voulais découper le fichier xml car il est beaucoup trop gros pour le faire à la main
Merci de votre aide.
A voir également:

5 réponses

Utilisateur anonyme
 
Hello,
quelle version de php ?
0
dargos Messages postés 3 Statut Membre
 
ma version de php est la 4.3.3
si tu as besoin d'autres informations demande moi
0
Utilisateur anonyme
 
Dommage, la version 5 de php intègre des fonctions de parsing XML natives qui rendent le traitement super leger.

Maintenant, c'est quoi exactement ton problème ? Parce que la, tu commencais plutot bien. :)
0
dargos Messages postés 3 Statut Membre
 
Je sais que le php5 est bien plus simple mais bon on fait avec les moyen du bord lol

Voila le probleme c'est quand je lance mon script,il me passe tout mon fichier xml dans le tableau à l'indice 0
Les autres indices du tableau sont vide,je ne sais pas trop comment fonctionne preg_split
J'ai l'impression qu'il ne s'arrete pas a la balise </p>,en gros il decoupe rien du tout.
Peut etre que mon expression reguliere n'est pas correct.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dargos Messages postés 3 Statut Membre
 
Je pense que le probleme vient du delimitateur, il ne le prend pas, c'est le (.*) le probleme

Je viens de tester avec ce bout de code :
$tab=split('<p id=', $content);


j'obtient un tableau avec
$tab[0]="45"><img>mjk</img><property>ljk</property></p>
$tab[1]="73"><img>ghf</img><property>kh</property></p>
etc...
c'est pas tout a fait ce que je veux mais on s'en rapproche
l'expression reguliere doit etre encore modifié je pense
0