begin process at 2012 05 28 20:43:30
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

POO

 > 

Classes & Objets

 > 

classe générique pour parser tout type de fichier xml


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

classe générique pour parser tout type de fichier xml

mercredi 13 janvier 2010 à 17:33:54 | classe générique pour parser tout type de fichier xml

mams004

Bonjour,

je cherche desespérement une classe php générique pour parser tout type de ficher XML


Si vous connaisser des liens ou tuto?

merci pour votre aide
mercredi 13 janvier 2010 à 19:11:15 | Re : classe générique pour parser tout type de fichier xml

neigedhiver

Salut,

Pourquoi ne pas simplement chercher dans la doc de php ?

SimpleXMLElement ?
DOM ?

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
jeudi 14 janvier 2010 à 08:26:42 | Re : classe générique pour parser tout type de fichier xml

mams004

bonjour, merci bien pour votre réponse

mais je vous explique le problématique :

On voudrai mettre en place une classe générique dans un serveur qui peut parser tout type de fichier xml
La forme du fichier xml peut changé en tout moment , dans ce cas ce que je veux c'est de ne pas modifier la class à chaque fois que la structure des balises du fichier XML change ou c'est impossible ?

Donc si j'ai bien compris le traitement efféctué par cette classe s'arrete tous simplement au parsing.

C'est mon travail alors de faire un foreach pour traité les données à l'affichage comme dans les tuto avec simple XML ?

merci
jeudi 14 janvier 2010 à 08:37:05 | Re : classe générique pour parser tout type de fichier xml

mams004

Pour être plus précis j'utilise zend pour le moteur de mon appli
j'ai déjà fait comme ça et ça marche bien :

dans le controlleur
Code PHP :
//Utilisation de simpleXML
    	$list = simplexml_load_file('http://localhost/site/admin/test.xml'); 
    	$this->view->list = $list;


dans la vue :
Code PHP :
<?php 
 
	if($this->list!="")
	{ 
		$i=0;
		foreach($this->list->medialist as $valeur)
		{
			// Pour gérer l'alternance des couleurs dans le tableau
			$class 	= $i%2?'ligne2':'ligne3';
	?>
			<tr class ="<?php echo $class;?>">
				
				<td><?php echo $valeur->id;?></td>
				<td><?php echo $valeur->size;?></td>
				
			</tr>
	<?php
	    $i++;
		} 
	} 
	?>


donc ma question est que le parsing se trouve à quel niveau dans ces deux bout de code, si la structure du xml change ces codes aussi doit changé ?

merci pour votre conseil
jeudi 14 janvier 2010 à 08:41:02 | Re : classe générique pour parser tout type de fichier xml

neigedhiver

Salut,

Donc si j'ai bien compris le traitement efféctué par cette classe s'arrete tous simplement au parsing.


Ben oui, puisque tu dis :

je cherche desespérement une classe php générique pour parser tout type de ficher XML



La forme du fichier xml peut changé en tout moment , dans ce cas ce que je veux c'est de ne pas modifier la class à chaque fois que la structure des balises du fichier XML change ou c'est impossible ?


Ben... Il n'est pas possible de créer une classe (ou n'importe quoi) qui soit capable de s'adapter à quelque chose qu'on ne connaît pas d'avance. Le principe d'un progamme, c'est justement d'être programme : ça veut bien dire qu'il faut prévoir les traitement qu'il devra effectuer.
Donc à moins de savoir précisément comment la structure du fichier XML peut évoluer, non, ce n'est pas possible.

Ce qu'il est possible de faire, sans connaître les changements futurs, c'est une classe qui va récupérer certaines informations dans le fichier XML. Ainsi, cette classe peut avoir des méthodes "génériques" pour la récupération de données, qui pourront être réécrites plus tard si la structure du fichier XML change. Par exemple, une méthode getClients() qui retournera la liste des clients, dans un format donné (fixe, déterminé et immuable) qui sera traité toujours de la même façon. C'est alors le rôle de cette méthode d'aller chercher les clients dans le XML et de mettre le résultat en forme pour qu'il soit utilisable en toute circonstance dans le reste du programme. Ainsi, si la structure du XML change, la méthode est réécrite (de façon a toujours récupérer la liste des clients), mais le reste du code, quant à lui, ne change pas, parce que ce que cette méthode renvoit ne change pas.
On peut ainsi imaginer une classe "générique", abstraite, qui définit les méthodes nécessaires au bon fonctionnement du programme et une ou plusieurs classe (concrètes) spécifiques au format du XML.
L'idée est de reproduire le principe de PDO : une classe PDO qui peut implémenter plusieurs classes d'accès à différents SGBDR, sans qu'il soit nécessaire de modifier le code de son programme si on change de SGBDR : on exécute toujours la méthode PDO::query() pour exécuter une requête etc.
Pour continuer l'analogie, c'est comme si un format de XML était un SGBDR différent : on utilise une classe spécifique.

PHP ne fournit que des outils pour parser du XML. La manière de parser et l'accès aux données ne peut pas être générique et dépend de la structure du fichier XML source, de l'utilisation qui est faite des données, etc. C'est donc au développeur de créer des outils qui lui permettent d'avoir cette souplesse. En y pensant correctement au début, on peut aboutir à une classe dont seul le contenu des méthodes sera modifié, n'impactant ainsi pas le reste du programme.

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)


Cette discussion est classée dans : type, xml, classe, parser, générique


Répondre à ce message

Sujets en rapport avec ce message

Classe XML pour php4 [ par dandy54 ] Salut !Exist-t-il une classe compatible avec php4 pour manipuler les ficheirs Xml et si possible aussi simple que SimpleXml (oui je suis exigeant) ??M Parser xml en php [ par tahbre ] Bonjour à tous, Je dois accéder à un fichier xml qui est sur un autre site ftp que le mien, et je veux réaliser un parser en php de façon à stocker l Au secours : comment parser un fichier xml et inserer a la volé dans une base mysql [ par deblok83 ] Bonjour,     c'est mon premier post ici alors je me permet de me presenter je suis le webmaster de deblok83.com . j'ai un petit probleme je veux fair parser xml [ par Nebraska ] bonjour,bon je débute salement en php; et j'ai besoin d'un parser xml. J'ai essayé ça mais bon ça marche pas :(Une bonne âme prèt a me dire ou je me s Parser Flux XML afin de trouver une info [ par neoxdragon ] Salut, Ce que je souhaite faire c'est parser un XML de ce type: 1 Nom1 afin d'obtenir l'id &#224 XML SAX organisation d'un menu [ par jnbdzjnbdz ] Bonjour, jessais depuis quelque semaines de faire un systeme avec xml pour mon menu affiche de la facon définis par le code xml voici ce que sais supo XML et EncryptedData ? [ par debuger ] Bonjour,J'aimerai savoir s'il est possible de Parser un fichier XML qui est crypté ! ? et celà avec une feuille de style XSL bien sur ?d'ailleurs comm Visibilité des membres d'une classe avec autoload ? [ par petitelarve ] Bonjour, ca m'énérve !!! J'ai une classe que je veut instancier dans un autre script avec autoload. L'objectif étant de récupérer des variables tablea Aide pour mon Parser XML [ par ddpetit ] Bonjour à tous,  je suis en train de me créer un parser xml pour un de mes sites, un problème subsiste, j'ai réussi à faire le parser en lui meme, mai Lecture de fichier XML [ par stigmate101 ] Bonjour,J'ai écris un code qui dois chercher un enregistrement dans un fichier XML. Ce code ne me m'affiche rien et ne me retourne pas d'erreur! Cl


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,702 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales