Aide - Recherche - Membres - Calendrier
Version complète : DOMXML
Forum Développeur - Administration serveur, programmation et base de données > Programmation > PHP
freed102
Bonjour...
j'ai commencé un programme en utilisant les fonctions DOMXML...

voici un bout de code

Php
function CreateDOMTextElement($DOMdocument,$parentNodeName,$newNodename,$couleur,$size,$text) 
{
$node=$DOMdocument->get_elements_by_tagname($parentNodeName);
$newNode=$DOMdocument->create_element($newNodename);  
$childnode=$DOMdocument->append_child($newNode);
$childnode->set_attribute("couleur",$couleur);  
$childnode->set_attribute("size",$size);  
$childnode=$DOMdocument->append_child($DOMdocument->create_text_node($text));  
}
 
$dom=domxml_new_doc("1.0");
$firstchildName="document";
$firstchild = $dom->create_element($firstchildName);  
$document = $dom->append_child($firstchild);  
$document->set_attribute("pagewidth","210");  
$document->set_attribute("pageheight","297");  
$document->set_attribute("background","#FFFFFF");  
 
CreateDOMTextElement($dom,$firstchildName,"nom","#CCCCCC","12",$_SESSION['CVnom']);
CreateDOMTextElement($dom,$firstchildName,"prenom","#CCCCCC","12",$_SESSION['CVprenom']);
CreateDOMTextElement($dom,$firstchildName,"titre","#CCCCCC","12",$_SESSION['CVtitre']);
CreateDOMTextElement($dom,$firstchildName,"adresse","#CCCCCC","16",$_SESSION['CVadresse']);
CreateDOMTextElement($dom,$firstchildName,"cp","#CCCCCC","8",$_SESSION['CVcp']);
CreateDOMTextElement($dom,$firstchildName,"ville","#CCCCCC","8",$_SESSION['CVville']);
CreateDOMTextElement($dom,$firstchildName,"telephone","#CCCCCC","8",$_SESSION['CVtelephone']);
CreateDOMTextElement($dom,$firstchildName,"fax","#CCCCCC","8",$_SESSION['CVfax']);
CreateDOMTextElement($dom,$firstchildName,"mobile","#CCCCCC","8",$_SESSION['CVmobile']);
CreateDOMTextElement($dom,$firstchildName,"email","#CCCCCC","8",$_SESSION['CVemail']);
CreateDOMTextElement($dom,$firstchildName,"url","#CCCCCC","16",$_SESSION['CVurl']);
 
//echo $dom->dump_mem(true, 'UTF-8' );
$dom->dump_file('essai.xml');  
echo 'Export XML effectue !<br><a href="essai.xml">Voir le fichier</a>';






mon programme génère une page xml visiblement erronnée... pourquoi ?

http://www.clonecopy.net/php/ezdocs/essai.xml

quelqu'un connait l'extension DOMXML de PHP ?
j'arrive pas à imbriquer mes balises correctement... elles se forment toutes sous la forme :

Code
<balise1 attribut="123"/>
<balise2 attribut="123"/>


au lieu de :

Code
<balise1 attribut="123">
</balise1>
<balise2 attribut="123">
</balise2>


resultat... le DOM inspector de firefox les voit toutes imbriquées les unes dans les autres :

Code
document
   |____balise1
           |____balise2


au lieu de

Code
document
   |___balise1
   |___balise2


comment je peux faire ?
Antoine
Montre nous ton XML complet (entre balise [xml ] et [/xml ] sans espace)
freed102
c'est bon j'ai reparé le probleme ! smile.gif
l'erreur c'etait mes create_text_node() .. Il fallait utiliser set_content()

Php
function CreateDOMTextElement($DOMdocument,$parentNodeName,$newNodename,$couleur,$size,$text)
{
$parentNode=& $DOMdocument->get_elements_by_tagname($parentNodeName);
$newNode=& $DOMdocument->create_element($newNodename);
$newNode->set_attribute("couleur",$couleur);
$newNode->set_attribute("size",$size);
$newNode->set_content(htmlentities($text,ENT_QUOTES));
$parentNode[0]->append_child($newNode);
}
 
$dom=& domxml_new_doc("1.0");
$firstchildName="document";
$firstchild =& $dom->create_element($firstchildName);
$firstchild->set_attribute("pagewidth","210");
$firstchild->set_attribute("pageheight","297");
$firstchild->set_attribute("background","#FFFFFF");
$dom->append_child($firstchild);
 
CreateDOMTextElement($dom,$firstchildName,"nom","#CCCCCC","12",$_SESSION['CVnom']);
CreateDOMTextElement($dom,$firstchildName,"prenom","#CCCCCC","12",$_SESSION['CVprenom']);
CreateDOMTextElement($dom,$firstchildName,"titre","#CCCCCC","12",$_SESSION['CVtitre']);
CreateDOMTextElement($dom,$firstchildName,"adresse","#CCCCCC","16",$_SESSION['CVadresse']);
CreateDOMTextElement($dom,$firstchildName,"cp","#CCCCCC","8",$_SESSION['CVcp']);
CreateDOMTextElement($dom,$firstchildName,"ville","#CCCCCC","8",$_SESSION['CVville']);
CreateDOMTextElement($dom,$firstchildName,"telephone","#CCCCCC","8",$_SESSION['CVtelephone']);
CreateDOMTextElement($dom,$firstchildName,"fax","#CCCCCC","8",$_SESSION['CVfax']);
CreateDOMTextElement($dom,$firstchildName,"mobile","#CCCCCC","8",$_SESSION['CVmobile']);
CreateDOMTextElement($dom,$firstchildName,"email","#CCCCCC","8",$_SESSION['CVemail']);
CreateDOMTextElement($dom,$firstchildName,"url","#CCCCCC","16",$_SESSION['CVurl']);
echo $dom->dump_mem(true, 'UTF-8' );
$dom->dump_file('essai.xml');
echo 'Export XML effectue !<br><a href="essai.xml">Voir le fichier</a>';


ce qui donne :
http://www.clonecopy.net/php/ezdocs/essai.xml
Antoine
Pour la prochaine fois utilise la coloration syntaxique, ca nous facilite la lecture. Il suffit de mettre [ php] // ton code ici [/ php] (sans espace) pour avoir :

Php
// ton code ici 
 
freed102
voila j'ai corrigé ! smile.gif
Antoine
tout beau smile.gif gourou.gif
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-2009 Invision Power Services, Inc.