Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Interpréter un XML Précompiler

phoenix_, le jeudi 9 novembre 2006 à 23:11:08
Bonsoir,
je travaille en collaboration avec une agence immobilière.
Cette agence utilise un logiciel pour générer les différents profils de leurs biens immobiliers.
Une fonction de ce logiciel permet d'exporter un XML sur un serveur FTP.

Exemple du XML :

<?xml version="1.0" encoding="windows-1252"?>
<BIENS>
<BIEN>
<TYPE_OFFRE>1</TYPE_OFFRE>
<NO_ASP>1292230</NO_ASP>
<PRIX>187000</PRIX>
<VILLE_OFFRE>PARIS</VILLE_OFFRE>
<CATEGORIE>APPARTEMENT</CATEGORIE>
<NB_PIECES>5</NB_PIECES>
<NB_CHAMBRES>2</NB_CHAMBRES>
<SURF_HAB>70</SURF_HAB>
<ETAGE>1</ETAGE>
<RS_AGENCE>AGENCE IMMOBILIERE</RS_AGENCE>
<ADRESSE1_AGENCE></ADRESSE1_AGENCE>
<CP_AGENCE>75000</CP_AGENCE>
<VILLE_AGENCE>PARIS</VILLE_AGENCE>
<TEL_AGENCE>01.00.00.00.00</TEL_AGENCE>
<FAX_AGENCE>01.00.00.00.00</FAX_AGENCE>
<MAIL_AGENCE>message@mail.com</MAIL_AGENCE>
<WEB_AGENCE>www.sitedelagence.com</WEB_AGENCE>
</BIEN>
</BIENS>

J'aimerai savoir si, une fois le XML exporté sur le site web de l'agence, il y a une possibilité d'interprété ces données, de manière à obtenir la présentation des biens sur le site web concerné ?

Si oui, quel serait la méthode à utiliser et combien de temps ce projet prendrait il ?
Répondre à phoenix_  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jisisv, le vendredi 10 novembre 2006 à 11:37:15
XSLT doit fournir une solution
Par exemple
http://www.zvon.org/xxl/XSLTutorial/Output_fre/contents.html­
Si tu utlises PHP:
http://php.easynet.be/manual/fr/ref.xslt.php

Johan Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)
Répondre à jisisv

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
phoenix_, le samedi 11 novembre 2006 à 01:17:43
Ca a l'air plus compliqué que prévu.
Merci, je vais étudier ça.
Répondre à phoenix_

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
kij_82, le samedi 11 novembre 2006 à 11:36:17
Si tu fais du java tu as des classes de loader et de parseur déjà toute faite. (Au cas ou)
~ iclic @ gauch,iclic, iclic @ droate, iclic, iclic
et ya pas de bôg môsieu ! ~
Répondre à kij_82

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
phoenix_, le lundi 13 novembre 2006 à 20:37:29
Non je ne fais pas de Java, en revanche si quelqu'un est près à me le developper à titre pro je suis preneur!
Répondre à phoenix_

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
kij_82, le mardi 14 novembre 2006 à 09:08:39
Et tu veux le faire avec quelle technologie ?

Sinon, tu peux te faire ton propre parseur, en lisant ligne par ligne...


Enfin, moi ca ne me dérange pas de te le développer, encore faut-il savoir avec quelle techno :)

~ iclic @ gauch,iclic, iclic @ droate, iclic, iclic
et ya pas de bôg môsieu ! ~
Répondre à kij_82

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
kij_82, le mardi 14 novembre 2006 à 11:51:40
Tu veux afficher les données en interprétant le fichier xml, ou include ces données dans une base de données, qui ensuite sera lu pour afficher les données dans la page web ?

~ iclic @ gauch,iclic, iclic @ droate, iclic, iclic
et ya pas de bôg môsieu ! ~
Répondre à kij_82

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
kij_82, le mardi 14 novembre 2006 à 14:26:50
Voilà un exemple fait rapido en PHP, s'appuyant sur les objets et permettant de construire une liste d'objet 'Bien' ayant toutes les propriétés de ton fichier XML :

<?php

Class Parser {
	
	var isInBien 			= null;
	var isInBiens			= null;
	var file_name			= null;
	var list_bien			= null;
	var nb_bien 			= null;
	
	function Parser ( $file_name ){
		
		// --- Init parser properties
		setIsInBiens(false);
		setIsInBien(false);
		setFileName($file_name);
		setNbBien(0);
	}
	
	function isInBiens ( ){
		return $this->isInBiens;
	}
	function isInBien ( ){
		return $this->isInBien;
	}
	function setIsInBiens ( $val ){
		$this->isInBiens = $val;
	}
	function setIsInBien ( $val ){
		$this->isInBien = $val;
	}
	function setFileName ( $val ){
		$this->file_name = $val;
	}
	function getFileName ( ){
		return $this->file_name;
	}
	function add_bien ( ){
		// --- Create a new entry in the list
		$this->list_bien[$this->getNbBien()] = new Bien();
		// --- Increase the number of 'Bien' object created
		$this->setNbBien($this->getNbBien()+1);
	}
	function remove_bien ( $i ){
		// --- Remove the entry
		unset($this->list_bien[$i]);
		// --- Decrease the number of 'Bien' object
		$this->setNbBien($this->getNbBien()-1);
	}
	function setNbBien ( $var ){
		$this->nb_bien = $var;
	}
	function getNbBien ( ){
		return $this->nb_bien;
	}
	function getCurentObjectFromList ( $i ){
		return $this->list_bien[$this->getNbBien()];
	}
	
}

Class Bien {
	
	var $TYPE_OFFRE 			= null;
	var $NO_ASP 					= null;
	var $PRIX							= null;
	var $VILLE_OFFRE			= null;
	var $CATEGORIE				= null;
	var $NB_PIECES				= null;
	var $NB_CHAMBRES			= null;
	var $SURF_HAB					= null;
	var $ETAGE						= null;
	var $RS_AGENCE				= null;
	var $ADRESSE1_AGENCE	= null;
	var $CP_AGENCE				= null;
	var $VILLE_AGENCE			= null;
	var $TEL_AGENCE				= null;
	var $FAX_AGENCE				= null;
	var $MAIL_AGENCE			= null;
	var $WEB_AGENCE				= null;

	
	function Bien(){
	}
	
}

function parseLine ( $i, $line, $parser ){
	
	// --- Retrieve the tag of the current line
	$tag = stristr($line,"<");
	if ( $tag == false )
		die("Parsing fatal error 1 !");
	
	// --- Format the tag
	$tag = substr($tag,0,strpos($tag,">"));
	
	echo "<BR><".$tag."> Parsing...";
		
	// --- Do the action that correspond of the tag value
	switch ( $tag ){
			
		case "BIENS" : 
			$parser->setIsInBiens(true);
			break;
				
		case "BIEN" : 
			if ( $parser->isInBiens() == true ){
				$parser->setIsInBien(true);
				// --- Add a new object in the list
				$parser->add_bien();
			}
			break;
				
		case "/BIEN" : 
			if ( $parser->isInBiens() == true )
				$parser->setIsInBien(false);
			break;
				
		case "/BIENS" : 
			$parser->setIsInBiens(false);
			break;
			
		default : // --- Property tag for current 'Bien' object
			if  ( $parser->isInBien() == true ){
				// --- Retrieve the tag value from the line string
				$tab_value = stristr($line,"<"+$tag+">");
				if ( $tab_value == false )
					exit("Parsing fatal error 2 !!");
				// --- Format the tag value
				$tag_value = substr($tag_value,0,strpos($tag_value,"</"+$tag+">"));
				// --- Update the value for the current property of the current 'Bien' 
				// --- object in the list contain in the parser
				($parser->getCurrentObjectFromList())->{$tag} = $tag_value;
			}
			break;
		}
		
	}
	
}

function parseXMLFile ( $parser ){
	
	// --- Open the file
	$tableau=file( $parser->getFileName() );
	
	// --- Counter line : start just after the first line because line 1 is the xml tag.
	$i=1;
	
	// affichage du contenu du tableau
	while ( $i < count($tableau) ){
		// --- TRACE
		echo $tableau[$i]."<BR>";
		$parser = parseLine ( $i, $tableau[$i], $parser );
	}
}

// --- Call the parser on the XML file
$result = parseXMLFile ( new Parser("./test.xml") );

?>


De cette maniere, il ne te reste plus qu'à faire une petite fonction qui parcours la liste des objets construits, et qui affiche les propriétés de chacun sur ta page web.

Par contre, comme dis, c'est fais rapidement, et c'est la premiere fois que j'utilise les objets dans du PHP, donc possible que ca merde (c'est pas tester), surtout pour la ligne suivante :

($parser->getCurrentObjectFromList())->{$tag} = $tag_value;


Bon courage à toi.

~ iclic @ gauch,iclic, iclic @ droate, iclic, iclic
et ya pas de bôg môsieu ! ~
Répondre à kij_82

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
phoenix_, le mardi 14 novembre 2006 à 23:50:59
Bonsoir Kij_82,
tout dabord merci pour toutes ces précisions.

La technologie a retenir serait la plus simple à mettre en place.
Le but étant qu'un transfert, du fichier XML comprenant l'intégralité des biens, soit fait chaque soir et qu'il puisse être interprété par le site web.
La page qui regroupe les biens pourrait être représentée par un moteur de recherches capable de faire le tri entre les catégories, les prix, les différentes surfaces etc..

Une précision importante! Lors du transfert du XML, les photos qui représentent les biens sont envoyées simultanément. Les noms attribués comprennent le numéro ASP et une lettre de a à z définissant l'ordre d apparition.

Exemple : 1850-01-numeroasp1-a.jpg, 1850-01-numeroasp1-b.jpg ou 1850-01-numeroasp2-a.jpg
Les 6 premiers chiffres ne bougent jamais, seul le numéro asp propre au bien, diffère d'un bien sur l autre.
Il faudrait donc un script capable de checker les photos appartenant à tel ou tel bien et capable de les afficher quand le bien est demandé, l'ordre des photos étant défini de a à z.

Si tu peux le prendre en charge ça serait l'ideal.
Voici mon mail pour + de précisions : phoenixmaster@hotmail.fr
Répondre à phoenix_

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 kij_82, le mercredi 15 novembre 2006 à 09:28:36
Ca me semble tout a fait faisable en PHP, et cela tres rapidement, je vais prendre contact avec toi ce soir pour en discuter.
Mais grosso modo, le mieux je pense (apres je peux me tromper), c'est que lorsqu'un fichier xml est uploader sur le server, qu'il soit interprété par le script que j'ai mis plus haut, puis que chaque objet valide soit intégré dans une base de données relationnelle. (MsSQL sera le plus simple)

Ainsi, un formulaire de 'selection' avec plusieurs type de critères de selection comme tu l'as précisé, pourra être fait, selectionnant ainisi les infos demandées dans la base de données.

a ce soir donc, mon mail : kij_82@hotmail.fr

~ iclic @ gauch,iclic, iclic @ droate, iclic, iclic
et ya pas de bôg môsieu ! ~
Répondre à kij_82
Caratere echappatoire balise xml (Résolu) Bonjour, Je gére dynamiquement les textes d'une application flash dans un fichier xml, et je cherche a mettre des liens hypertexte dans mon texte. PB : xml interprète les balise comme des balise xml. Est-ce qu'il existe un caractère... www.commentcamarche.net/forum/affich-1363640-caratere-echappatoire-balise-xml
[XSL]Navigateur + encodage... (Résolu) Bonjour à tous, j'ai un soucis, même 2 plus pércisement : - J'ai fait une feuille de style XSL attachée à un fichier XML et cette dernière est interpretté correctement par IE et pas du tout par FF (ce qui est très étonnant ..), pourquoi ? Je... www.commentcamarche.net/forum/affich-2500145-xsl-navigateur-encodage
PHP - Parser du XML Introduction à 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... www.commentcamarche.net/contents/php/phpxml.php3
PHP et XML (Résolu)Bonjour j'aimerai bien savoir SVP est ce qu'on a la possibilté d'inclure un code PHP au sein d'une page XML . Merçi en avance aux gens qui veulent m'aider. www.commentcamarche.net/forum/affich-1923554-php-et-xml
Import données XML -> Base de données (Résolu)Bonjour à tous J'aurai besoin d'aide en VB, j'ai réalisé un outil pour le moment qui permet de changer un fichier excel en fichier XML, les données XML serviront pour la base de données crée, j'aimerai savoir comment je peus... www.commentcamarche.net/forum/affich-1258405-import-donnees-xml-base-de-donnees
Impossible de lire un fichier xml (Résolu)bonjour, lorsque je lance un fixhier .xml, IE 5.5 me renvoie ça : The XML page cannot be displayed Cannot view XML input using style sheet. Please correct the error and then click the Refresh button, or try again later. -------------------------------... www.commentcamarche.net/forum/affich-1162623-impossible-de-lire-un-fichier-xml
Télécharger DriveImage XMLDriveImage XML est un programme permettant de faire des images du système (partitions et lecteurs logiques) à des fins de sauvegarde, à la manière de Norton Ghost. Ce programme permet : De créer des images des lecteurs logiques et des... www.commentcamarche.net/telecharger/telecharger-34055109-driveimage-xml
Introduction à XMLPrésentation de XML XML (entendez eXtensible Markup Language et traduisez Langage à balises étendu, ou Langage à balises extensible) est en quelque sorte un langage HTML amélioré permettant de définir de nouvelles balises. Il s'agit effectivement... www.commentcamarche.net/contents/xml/xmlintro.php3
Mise en page de XML avec XSLIntroduction à XSL XML est un langage de structuration des données, et non de représentation des données. Ainsi XSL (eXtensible StyleSheet Language) est un langage recommandé par le W3C pour effectuer la représentation des données de documents XML.... www.commentcamarche.net/contents/xml/xmlxsl.php3
Structure d'un document XMLQu'est-ce que le XML? La norme XML en tant que telle doit être vue comme un outil permettant de définir un langage (on dit alors qu'il s'agit d'un métalangage), permettant de créer des documents structurés à l'aide de balises. Une balise est une... www.commentcamarche.net/contents/xml/xmlstruc.php3