Utilisation de DOM XML

Résolu
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 - 24 avril 2006 à 09:54
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 - 24 avril 2006 à 10:16
Bonjour,

Voila j'ai quelques soucis pour utiliser la class DOM XML ...

Il ne met pas la balise de fermeture du root du document xml et en plus sans indentation ...

<?xml version= "1.0"?>

<day></day>




je voudrais créer des fichiers xml de ce genre mais j'ai ce qui est juste en haut

<?xml version ="1.0"?>




<day></day>










<day></day>

















voici le code que j'ai ecris ...

$doc = domxml_new_doc("1.0");

$root = $doc->add_root("planning_previsionnel");

$day = $doc->new_child("day", "");

$id_work = $doc->new_child("id_work", "");

$id_plage = $doc->new_child("id_plage", "");

$id_poste = $doc->new_child("id_poste", "");

$day = $doc->new_child("day", "");


$id_work = $doc->new_child("id_work", "");


$id_plage = $doc->new_child("id_plage", "");


$id_poste = $doc->new_child("id_poste", "");

echo htmlentities($doc->dump_mem());


Sachant que chaque jour est unique est il preferable de definir un jour ainsi ?

<day>












</day>



Merci a tous ceux qui m'aiguillerons parce que là je suis un peu perdu :/
-------------------------------------------------------------------------------------------------------

Il vaut mieux poser une question et passer pour bête que le rester
toute sa vie

4 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
24 avril 2006 à 10:02
Hello,

tu dois faire tes new_child sur la racine du document, pas sur le document.
$root = $doc->add_root("planning_previsionnel");
$day = $root->new_child("day", "");
$id_work = $root->new_child("id_work", "");
$id_plage = $root->new_child("id_plage", "");
$id_poste = $root->new_child("id_poste", "");
$day = $root->new_child("day", "");
$id_work = $root->new_child("id_work", "");
$id_plage = $root->new_child("id_plage", "");
$id_poste = $root->new_child("id_poste", "");
echo htmlentities($doc->dump_mem());

Tu crées un élement, et tu l'appendes à l'élément que tu veux. Si tu prends le codument comme élément, bah, ton nouvel élément sera écrit au plus haut niveau (donc, comme une racine). Or tu ne dois avoir qu'une seule racine dans un document xml.
Perso j'utilise :
create_element
append_element

Donc, le create se fait sur le document, puisque le nouvel élément appartient bien au document, mais l'append se fait sur l'élément que je veux comme parent à ce nouvel élément.
bien que curieusement, je n'ai pas trouvé new_child () comme méthode lol....mais bon.


2de question: peut-être, oui, ça dépend comment tu comptes utiliser tout ça.
3
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
24 avril 2006 à 10:08
Et bien en fait c'est pour eviter une bdd surchargée ...

En fait chaque jour une personne effectue un travail mais ce jour est
unique pour la personne alors que son poste et la plage horraire ne le
sont pas. C'est pour cette raison que je pensais l'utiliser comme "une
clef primaire".

et donc prendre entre les balises <day> les 2 paramètres du travail effectué.

Cela me paraissait plus judicieux mais je sais pas si ça se fait ainsi...


-------------------------------------------------------------------------------------------------------

Il vaut mieux poser une question et passer pour bête que le rester
toute sa vie
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
24 avril 2006 à 10:15
Ben essaye.
C'est simple de ttes façons.
N'oublies juste pas que tu dois lier un élément à son élément parent, et pas au document.
0
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
24 avril 2006 à 10:16
Oki ca marche ! ^^

Merci beaucoup

-------------------------------------------------------------------------------------------------------

Il vaut mieux poser une question et passer pour bête que le rester
toute sa vie
0
Rejoignez-nous