Aide - Recherche - Membres - Calendrier
Version complète : php 5 fonctions dom
Forum Développeur - Administration serveur, programmation et base de données > Programmation > XML et XSL
elmagico
Bonsoir,au départ problème de caractère illisible j'ai ajouter la fonction pour les charactères spéciaux deux lignes, maintenent persite un problème de nom cloture de balise si un champ est vide ...

(les données sonr récupérer sur une base sql, php 5.0.4 et les fonctions pour le dom et le MultiByte fonctionnel) ...

Je vois pas de ou ca viens ... si quelq'un a une idée, peut me mettre sur la piste ou meme la solutions ! merci d'avance...

Ce que j'obtient ...


<items>
<id_item>1</id_item>
<texte>LE TITRE 1</texte>
<donnee/> << problème
</items>

ce qui serais plus correcte ...

<items>
<id_item>1</id_item>
<texte>LE TITRE 1</texte>
<donnee></donnee>
</items>

Le partie du code pour crée un xml encodage UTF8

// -----
$xml_doc = new DomDocument('1.0', 'UTF-8');

$root = $xml_doc->createElement("listejeux");
$root = $xml_doc->appendChild($root);

while($row = mysql_fetch_assoc($recordset)) {

$occ = $xml_doc->createElement("items");
$occ = $root->appendChild($occ);

foreach ($row as $fieldname => $fieldvalue) {

$child = $xml_doc->createElement($fieldname);
$child = $occ->appendChild($child);

$fieldvalue = mb_convert_encoding($fieldvalue,'UTF-8','ISO-8859-1');

$value = $xml_doc->createTextNode($fieldvalue);
$value = $child->appendChild($value);
}
}
// -----
jep
Autant te le dire tout de suite, tu n'as pas d'erreur icon_wink.gif

En fait, en XML <donnee/> et <donnee></donnee>, c'est la même chose ! <donnee/> est ce que l'on apelle une balise auto-fermante.
elmagico
Aah c'est deja une très bonne nouvelle ! Merci ! icon_wink.gif

- Ce qui a c'est que mes données, je les récupère dans un datagrid sous flash !
Et quand il un object vide > sans données, je récupère le non de la balise !!!

- Est ce que il y a un moyen pour forcer le formatage des balise meme sil elle sont vide ?

- De plus maintenent j'ai des erreurs de "XSL" par rapport au formatage avec ma feuille de style ! LOL Qu'elle feuille de style ?! ... C'est inetrgée dans les fonctions DOM ?

- J'ai été encore voir la doc php, je vois pas d'autre fonction que c'elle que j'emploi, comment faire ? icon_sad.gif

- Ou alors il faut que je modifie mon code pour lire le fichier et qu'l passe les object sans données ?

Merci d'avance ...
jep
elmagico (Jul 5 2005, 03:53 PM) a dit :
- Ce qui a c'est que mes données, je les récupère dans un datagrid sous flash !
Et quand il un object vide > sans données,  je récupère le non de la balise !!!

Sans doute un "problème" propre à flash a voir avec les pro de chez http://flash.media-box.net icon_wink.gif

elmagico (Jul 5 2005, 03:53 PM) a dit :
- Est ce que il y a un moyen pour forcer le formatage des balise meme sil elle sont vide ?

Pas à ma connaissance (surtout que normalement, c'est inutile).

elmagico (Jul 5 2005, 03:53 PM) a dit :
- De plus maintenent j'ai des erreurs de "XSL" par rapport au formatage avec ma feuille de style ! LOL Qu'elle feuille de style ?! ... C'est inetrgée dans les fonctions DOM ?

icon_confused.gif Gné !? On peut voir le message d'erreur original ?
elmagico
Bon Lol pour le problème de style de feuille xsl, je l'ai résolus, un tag en trop dans mon script pas dans la partie formatage xml !!

J'aimerais quand meme savoir c koi ces feuile de style xsl ou leurs standart ou a koi c ser tout simplement.

Je vais voir dans mon script coter flash pour le moment pour la récupération des balise auto-fermante ecnore merci ...

Au cas ou ca peut intéresser quelqu'un voici mon code complet pour aller reprendre des infos dans une base sql et les formater en xml :

CODE

<?php
$hostname_db = "hostname";
$database_db = "database";
$username_db = "username";
$password_db = "password";
$connect_db = mysql_pconnect($hostname_db, $username_db, $password_db) or die(mysql_error());


    mysql_select_db($database_db, $connect_db);

    $query = "select id_xxx, xxx, xxxx, xxx, xxx, xxx from xxx order by id_xxx";
    $recordset = mysql_query($query, $connect_db) or die(mysql_error());
    

    $xml_doc = new DomDocument('1.0', 'UTF-8');

    $root = $xml_doc->createElement("liste");
    $root = $xml_doc->appendChild($root);

    while($row = mysql_fetch_assoc($recordset)) {
      
    $occ = $xml_doc->createElement("item");
    $occ = $root->appendChild($occ);
  
    foreach ($row as $fieldname => $fieldvalue) {
  
      $child = $xml_doc->createElement($fieldname);
      $child = $occ->appendChild($child);
  
    $fieldvalue = mb_convert_encoding($fieldvalue,'UTF-8','ISO-8859-1');

    $value = $xml_doc->createTextNode($fieldvalue);

        $value = $child->appendChild($value);
    }
    }

mysql_free_result($recordset);
mysql_close();

print $xml_doc->saveXML();
?>
jep
elmagico (Jul 5 2005, 11:50 PM) a dit :
J'aimerais quand meme savoir c koi ces feuile de style xsl ou leurs standart ou a koi c ser tout simplement.

Les feuilles de style XSL sont une norme W3C definissant un système standard d'accès (XPath), de modification (XSLT) et de description (XSL-FO) des documents XML. (Pour faire simple)

> http://www.w3.org/Style/XSL/
> http://www.yoyodesign.org/doc/w3c/xsl1/Overview.html
> http://xmlfr.org/w3c/TR/xslt/

C'est très utile pour transformer un document XML en un autre document XML (ou en combiner plusieurs), ou pour parcourrir un document XML (beaucoup plus efficasse que DOM !)
elmagico
Merci jep !!! wink.gif C'est vrais que j'aurais aussi pu faire une petite recherche ! Alors encore merci ...
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2008 Invision Power Services, Inc.