Bonjour,
Je suis entrain de travailler sur un projet avec MKFramework,
Je voudrais extraire les données d'une table en format XML avec le MKFramework.
Quoi je faire ?
Bonjour,
Je suis entrain de travailler sur un projet avec MKFramework,
Je voudrais extraire les données d'une table en format XML avec le MKFramework.
Quoi je faire ?
Je n'ai pas bien saisi: la données est stoqué en xml, ou la données est stoquée en base de données (mysql, postresql...) ?
Si c'est pour extraire les données d'une base de données pour crééer un xml
Dans votre methode action (de votre module)
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <?php public function _extract(){ $tData=model_Matable::getInstance()->findAll(); $sXml='<? version="1.0" ?>'; foreach($tData as $oData){ $sXml.='<data>'; $sXml.='<monChamp><![CDATA['.$oData->monChamp.']]></monChamp>'; $sXml.='</data>'; } print $sXml; }
Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
Mes cours/tutoriaux
EN effet je voudrais extraire les données d'une table de ma base de donnée sql en Format Xml.
Voila un exemple de la table :
CREATE TABLE IF NOT EXISTS `cities` (
`id_cities` int(11) NOT NULL AUTO_INCREMENT,
`nom` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
`latitude` float NOT NULL,
`logitude` float NOT NULL,
`nbr_habitant` int(11) NOT NULL,
`created` date NOT NULL,
`id_countries` int(11) NOT NULL,
PRIMARY KEY (`id_cities`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=10 ;
J'ai déjà des enregistrements dans ma table
Vous avez déjà paramétré votre profil de connexion dans votre application ? (fichier conf/connexion.ini.php)
Si ce n'est pas le cas, commencez par la: sur votre projet, editer le fichier conf/connexion.ini.php pour ajouter un profil permettant de se connecter a votre base de données
Par exemple pour une base mysql
Ensuite, via le builder, générez la classe modèle cities
Code ini : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 ;<?php die()?> [db] maBaseMysql.dsn="mysql:dbname=dvpXml;host=localhost" maBaseMysql.sgbd=pdo_mysql maBaseMysql.username=root maBaseMysql.password=root
Enfin créer un module, ou une méthode action dans le module "default"
et la, vous mettez un code qui génère le fichier xml:
Ce qui donnera en vous rendant sur la page:
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 <?php public function _extract(){ header("Content-type: text/xml; charset=utf-8"); $sXml=''; $tCities=model_cities::getInstance()->findAll(); $tColumn=model_cities::getInstance()->getListColumn(); foreach($tCities as $oCity){ $sXml.='<city>'; foreach($tColumn as $sColumn){ $sXml.='<'.$sColumn.'><![CDATA['.$oCity->$sColumn.']]></'.$sColumn.'>'; } $sXml.='</city>'; } echo $sXml;exit; }
![]()
Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
Mes cours/tutoriaux
J'arrive à extraire les données sous format XML mais il affiche un message d'erreur :
Erreur d'analyse XML : données incompréhensibles après l'élément de document
Et toutes les données sont afficher sur la même ligne
Il doit y avoir une erreur à la création du xml, pouvez vous m'envoyer un exemple du xml généré (en cachant les informations "confidentielles")
Avez-vous bien ajouté les balises <![CDATA[ comme dans mon exemple ?
n'y a t'il pas une balise ouverte mal fermé ?
Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
Mes cours/tutoriaux
Partager