Petit probleme pour parser flux xml

Répondre
doudi
le 22/12/2008 à 19:40
doudi
Salut,

Je suis en train de parser un flux xml... j'ai pratiquement terminé ! par contre je bute sur un ptit soucis !

Voici l'arbre général du flux xml :

- <plantes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.aquabase.org/plante.xsd">
<plante>
<NomScientifique>Hydrocotyle leucocephala</NomScientifique>

<NomCommuns>
<NomCommun>Hydrocolyte à pétales blancs</NomCommun>
<NomCommun>Hydrocotyle</NomCommun>
</NomCommuns>

<Temperature>
<TempMin>20</TempMin>
<TempMax>28</TempMax>
</Temperature>

<Acidite>
<PHMin>6.00</PHMin>
<PHMax>7.50</PHMax>
</Acidite>

<Durete>
<GHMin>0</GHMin>
<GHMax>0</GHMax>
</Durete>

<Taille>
<TailleMin>0.0</TailleMin>
<TailleMax>60.0</TailleMax>
</Taille>
<Origine>Brésil</Origine>
<Substrat>Indifférent</Substrat>
<Eclairage>Moyen</Eclairage>

<Croissance>
Très rapide si elle bénéficie d'un bon éclairage.
</Croissance>

<Emplacement>
En surface en tant que plante flottante ou en arrière plan.
</Emplacement>

<Reproduction>
Il faut régulièrement la bouturer pour éviter qu'elle ne recouvre toute la surface. Peut pousser en dehors de l'aquarium.
</Reproduction>
</plante>

<plante>


et voici mon code php qui parse le flux :

function affich_plantes(){

foreach($this->xml->PLANTES->PLANTE as $plante)
{
$pnom=substr(''.strtolower($plante->NOMSCIENTIFIQUE->data).'',0,1);

mysql_query("INSERT INTO `plantes` VALUES ('' , '$pnom', '".$plante->NOMSCIENTIFIQUE->data."', '".$plante->NOMCOMMUN->data."', '".$plante->TEMPERATURE->TEMPMIN->data."', '".$plante->TEMPERATURE->TEMPMAX->data."', '".$plante->ACIDITE->PHMIN->data."', '".$plante->ACIDITE->PHMAX->data."', '".$plante->DURETE->GHMIN->data."', '".$plante->DURETE->GHMAX->data."', '".$plante->TAILLE->TAILLEMAX->data."', '".$plante->TAILLE->TAILLEMIN->data."', '".$plante->ORIGINE->data."', '".$plante->ECLAIRAGE->data."', '".$plante->CROISSANCE->data."', '".$plante->EMPLACEMENT->data."', '".$plante->REPRODUCTION->data."')");

}
doudi
le 22/12/2008 à 20:42
doudi
dsl ça me déloguais du site quand j'ai posté le message et quand je cliqué sur mon sujet !

en fait mon soucis c'est au niveau de :

<NomCommuns>
<NomCommun>Hydrocolyte à pétales blancs</NomCommun>
<NomCommun>Hydrocotyle</NomCommun>
</NomCommuns>

J'aimerais entrer chaque donnée de nomcommun dans le champ "nomc" de la base de données de la façon suivante : Hydrocolyte à pétales blancs, Hydrocotyle

Voici la table "plantes" :

CREATE TABLE `plantes` (
`id` int(3) NOT NULL auto_increment,
`pnom` text character set latin1 NOT NULL,
`noms` varchar(300) character set latin1 NOT NULL,
`nomc` varchar(300) character set latin1 NOT NULL,
`tempmin` varchar(2) character set latin1 NOT NULL,
`tempmax` varchar(2) character set latin1 NOT NULL,
`phmin` varchar(2) character set latin1 NOT NULL,
`phmax` varchar(2) character set latin1 NOT NULL,
`ghmin` varchar(2) character set latin1 NOT NULL,
`ghmax` varchar(2) character set latin1 NOT NULL,
`taillemin` int(3) NOT NULL,
`taillemax` int(3) NOT NULL,
`origine` varchar(300) collate utf8_unicode_ci NOT NULL,
`eclairage` varchar(300) collate utf8_unicode_ci NOT NULL,
`croissance` varchar(300) collate utf8_unicode_ci NOT NULL,
`emplacement` varchar(300) collate utf8_unicode_ci NOT NULL,
`repro` varchar(300) collate utf8_unicode_ci NOT NULL,
`img1` varchar(150) collate utf8_unicode_ci NOT NULL,
`img2` varchar(150) collate utf8_unicode_ci NOT NULL,
`img3` varchar(150) collate utf8_unicode_ci NOT NULL,
`img4` varchar(150) collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;
doudi
le 24/12/2008 à 14:50
doudi
J'aimerais parser ce flux :

http://www.aquabase.org/plant/dump.php3?format=xml

Voici un zip de mon parser + de la table plantes :

http://www.megaupload.com/fr/?d=WNIAMFYF

Quelqu'un peut m'aider svp !
doudi
le 28/12/2008 à 21:47
doudi
114 fois vus et 0 réponse pour m'aider ! :-/ ca m'apprendre à demander de l'aide!
LupusMic
le 29/12/2008 à 03:55
LupusMic
Premièrement, pour pouvoir t'aider, il faudrait pouvoir comprendre ton problème. Et il faudrait surtout qu'il y ait un problème.

Deuxièmement, tu nous présente du code sans même expliquer ce que tu as fait. Désolé, mais j'utilises DOMDocument pour accéder à un fichier XML, et rien dans ce que tu présentes n'y ressemble. Donc je ne peux pas t'aider.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours