probleme XML avec PHP DOMXML - XML/XSL - Programmation
Marsh Posté le 26-05-2005 à 15:24:04
autant que je sache, tes 2 ecritures sont equivalentes. 
 
pour les voir imbriquees selon le premier schema, ca veut dire que ton document est comme ca: 
 
<balise1 attribut="123"> 
    <balise2 attribut="123"> 
    </balise> 
</balise> 
 
ca veut dire aussi qu'il comprend de maniere implicite l'ordre des end-tags, puisque tu precise pas le numero. 
 
a part ca, je vois pas ou est le probleme, desole!
Marsh Posté le 26-05-2005 à 15:26:49
bah le probleme c'est que je veux pas que mes balises soient imbriquées comme ça : 
<document> 
<balise1 attribut="123">texte1  
    <balise2 attribut="123">texte2 
    </balise2>  
</balise1>  
</document> 
 
 
je veux qu'elles soient comme ça : 
<document> 
<balise1 attribut="123">texte1</balise1>  
<balise2 attribut="123">texte2</balise2> 
</document>
Marsh Posté le 26-05-2005 à 15:39:36
bah oui, on est d'accord. 
 
c'est pour toi ou c'est pour un projet? 
 
tu peux pas passer a php5? paske il gere le xml les doigt dans le zen... 
 
je connais pas domxml, j'utilise que php5. 
 
t'as pas une fonction equivalente a appendChild (rattacher fils en francais)?
Marsh Posté le 26-05-2005 à 15:44:05
non mon serveur est en PHP4, l'herbergeur a bien voulu installer l'extension DOMXML c deja bien ! lol 
 
à priori j'ai toutes les fonctions necessaires pour construire mon fichier.. Mais peut etre que je m'y prends mal... Voici un bout de code : 
 
| Code : 
 | 
Marsh Posté le 26-05-2005 à 15:52:38
en resumé... 
j'ai créé une premiere balise "document" (firstchildName) 
avec ma fonction "CreateDOMTextElement" j'ajoute mes elements un par un avec DOM->append_child(); au noeud (dont le nom est le second attribut de la fonction CreateDOMTextElement)  
 
... logiquement ça fait bien un  
 
<document> 
<balise1>texte</balise1> 
<balise2>texte</balise2> 
<balise3>texte</balise3> 
</document> 
 
... mais c pas le cas !
Marsh Posté le 26-05-2005 à 16:04:07
Pour un truc comme ça : 
| <document>  | 
 
Faut faire comme ça : 
| $xml_doc =& domxml_new_doc('1.0');  | 
Marsh Posté le 26-05-2005 à 16:22:47
ah !! ya du mieux !!  
 
| Code : 
 | 
 
 
mais à quoi sert le & ??? 
 
et avec set_content je peux refermer ma baliser </DOCUMENT> ?
Marsh Posté le 26-05-2005 à 16:33:09
Y'a pas de balise document à refermer, tout ça est gérer par le create_element. Et le set_content revient à créer un textnode et à l'appender à un élément. 
 
Pour le &, documente-toi sur PHP et les référence 
Marsh Posté le 26-05-2005 à 16:40:13
bon j'ai toujours une erreur mais là je crois que c un probleme d'encodage ou je ne sais quoi...  
 
| Citation :   | 
 
Marsh Posté le 26-05-2005 à 16:49:45
La structure d'un doc XML doit avoir cette tronche : 
| <pouet>  | 
 
Donc tout dans un seul élément. T'as pas le droit d'avoir genre : 
| <pouet>  | 
Marsh Posté le 26-05-2005 à 16:51:20
oui c bien ce que j'ai compris.. c ma balise <document> qui n'est pas fermée qui fait iech !!! lol
Marsh Posté le 26-05-2005 à 16:55:47
à mon avis c mon get_element_by_tag_name qui gene 
il me retourne un array alors que je veux un object
Marsh Posté le 26-05-2005 à 16:56:32
 avec des fonctions DOMXML, c'est fait automatiquement, ça... Oublie pas de faire un append_child de ton élément document sur le document xml
 avec des fonctions DOMXML, c'est fait automatiquement, ça... Oublie pas de faire un append_child de ton élément document sur le document xml
Marsh Posté le 26-05-2005 à 16:58:50
bah c ce que je fais.... 
| Code : 
 | 
 
 
| Citation :   | 
Marsh Posté le 26-05-2005 à 17:02:41
Sauf que get_elements_by_tagname renvoi un tableau d'éléments, donc c'est : 
| $parentNode[0]->append_child($newNode); | 
Marsh Posté le 26-05-2005 à 17:05:40
yess c ça...  
mais c toujours erroné pour le doc ! 
 
| Code : 
 | 
Marsh Posté le 26-05-2005 à 17:11:03
Là ça veut dire que les autres éléments ne sont pas ajoutés dans document (document est vide dans ton cas, cf. /> ), faut chercher ailleurs...
Marsh Posté le 26-05-2005 à 17:27:14
question.... 
peut on passer un objet dans les attributs d'une fonction ??
Marsh Posté le 26-05-2005 à 17:41:23
oh tiens !! d'un coup ça marche !!!! je sais pas pourquoi j'ai rien changé ! WERK !!!!!  
  
  
  
  
 
 
http://www.clonecopy.net/php/ezdocs/essai.xml 
 
| Code : 
 | 
Marsh Posté le 26-05-2005 à 17:46:21
pratique les fonctions... j'avais pas envie de me taper toutes les lignes à la main ! (avec toutes les erreurs qui vont avec) 
 
thanx a lot ! 
Marsh Posté le 26-05-2005 à 23:53:06
Great. Maintenant tu peux passer au XSL pour transformer ça en autre chose ![[:johneh] [:johneh]](https://forum-images.hardware.fr/images/perso/johneh.gif)
Marsh Posté le 27-05-2005 à 00:13:01
bah pas pour cette fois car là ça servait juste pour memoriser les parametres et informations destinées à la construction d'un fichier PDF (avec EZPDF, j'ai deja fait une sorte de moteur... Mais là je m'emmelais les crayons avec les variables... c pourquoi j'ai fait un systeme avec XML) 
... je pense pas qu'un XSL soit necessaire... à moins que ce soit vraiment magique et qu'on peut transformer un XML+XSL en PDF super top graphique etc etc... mais j'en doute !
Marsh Posté le 27-05-2005 à 00:19:02
Je crois qu'il y a un truc comme ça justement, je vais me renseigner 
Marsh Posté le 27-05-2005 à 00:25:21
http://www.netmag.co.uk/tutorials/ [...] tionid=183 
 
Avec XSL-FO... A voir maintenant si c'est faisable via PHP...
Marsh Posté le 27-05-2005 à 00:38:15
interessant... Mais est-ce que c'est capable de positionner les elements de façon precise avec des parametres ?
Marsh Posté le 27-05-2005 à 00:40:06
ouai je vois le genre... mais je sens la galere avec les polices etc etc coté serveur ! avec ezpdf j'avais trouvé une solution plutot sympa pour les polices
Marsh Posté le 26-05-2005 à 15:11:16
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
<balise1 attribut="123"/>
<balise2 attribut="123"/>
au lieu de
<balise1 attribut="123">
</balise>
<balise2 attribut="123">
</balise>
resultat... le DOM inspector de firefox les voit toutes imbriquées les unes dans les autres :
document
|____balise1
|____balise2
au lieu de
document
|___balise1
|___balise2
comment je peux faire ?