Rechercher : dans
Par :

Découper fichier xml avec script php

Dernière réponse le 10 avr 2006 à 15:13:48 Dargos, le 10 avr 2006 à 11:56:46 
 Signaler ce message aux modérateurs

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.

Meilleures réponses pour « découper fichier xml avec script php » dans :
[PHP] Upload de fichiers VoirLe langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La...
Connexion à une base Oracle en php Voir1. Périmètre Cet article est un exemple de connexion à une base Oracle par le biais d'un script php. Cet article ne traite pas la configuration de votre serveur Oracle, et de votre client Oracle. Nous partons du principe que vous pouvez accéder à...
PHP - Les fichiers VoirLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...
PHP - Parser du XML VoirIntroduction à XML PHP permet l'analyse syntaxique (parsage ou parsing en anglais) d'un document XML. Le langage XML (eXtensible Markup Language, traduisez Langage à balises extensibles) est un métalangage, c'est-à-dire un langage permettant de...
Implantation du code Php VoirL'interprétation du code par le serveur Un script PHP est un simple fichier texte contenant des instructions écrites à l'aide de caractères ASCII 7 bits (des caractères non accentués) incluses dans un code HTML à l'aide de balises spéciales et...

1

kalamit, le 10 avr 2006 à 13:24:26

Hello,
quelle version de php ?
Kalamit,
J'ai des questions à toutes vos réponses... :)

Répondre à kalamit

2

dargos, le 10 avr 2006 à 13:40:43

Ma version de php est la 4.3.3
si tu as besoin d'autres informations demande moi

Répondre à dargos

3

kalamit, le 10 avr 2006 à 13:49:54

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. :)
Kalamit,
J'ai des questions à toutes vos réponses... :)

Répondre à kalamit

4

dargos, le 10 avr 2006 à 14:02:55

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.

Répondre à dargos

5

 dargos, le 10 avr 2006 à 15:13:48

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

Répondre à dargos