re-bonjour,
J'ai fouillé dans la documentation php. Et grâce à vos conseils, tout
fonctionnerais parfaitement si DOM (php5) n'avait pas perdu
set_content(), pour le remplacer par
noeud->replaceChild(nouveau_noeud, ancien_noeud).
Et çà ne fonctionne pas.
J'ai pourtant testé si j'étais bien dans le bon noeud contexte, si
nouveau_noeud et ancien_noeud sont du même type. Rien n'y fait.
Impossible d'atteindre mon but premier : remplacer le contenu texte
d'un élément pour un autre.
--
Jean-Marie
---
Le 29 juil. 2005 à 11:21, Stephane a écrit :
> Bonjour,
>
> Attention, dans PHP5 la méthode DOMDocument->getElementById() ne
> fonctionne que si le document a été validé par une DTD:
> http://blog.bitflux.ch/wiki/GetElementById_Pitfalls
>
> J'utilise généralement l'objet DomXPath pour retrouver un noeud
> lorsque
> mon document XML n'a pas de DTD:
> http://fr.php.net/manual/en/function.dom-domxpath-query.php
> La méthode DomXPath->query() rend un objet de type DOMNodeList (pas un
> tableau).
>
> Pour le reste, il ne devrait pas avoir de soucis, le comportement est
> proche de celui de PHP4.
>
> Stephane.
>
>
>
> Le vendredi 29 juillet 2005 à 08:50 +0200, Pascal EMMA a écrit :
>
>
>> Bonjour,
>> Il faut procder par tape :
>> 1 - Slection de l'lment par son identificateur partir du document :
>> $element = $document->get_element_by_id ('0001');
>> 2 - Slection des lments portant le nom naissance :
>> $noeuds = $element->get_element_by_tagname ('naissance');
>> 3 - Slection du noeud texte :
>> $noeud = $noeuds[0]->first_child();
>> 4 - modification du contenu du noeud :
>> $noeud->set_content('1967-07-31Z');
>> Il peut tre opportun d'inclure des vrifications pour tester le
>> type des
>> noeuds par exemple ( $noeud->node_type() == XML_TEXT_NODE ).
>> Pour PHP 5, les noms de mthodes peuvent diffrer. Dans ce cas, il faut
>> supprimer les underscores et la premire lettre aprs ces caractres
>> doivent
>> tre en majuscule (ex.: getElementByTagname()).
>> Cordialement,
>> Pascal EMMA
>>
>>
>> -------Message original-------
>>
>> De : Jean-Marie Hoornaert
>> Date : 07/28/05 18:57:30
>> A : xml-tech@xmlfr.org
>> Sujet : [xml-tech] Une aide en php 5 dom
>>
>> Bonsoir,
>>
>>
>> Une simple question.
>> Je cherche un petit "tutoriel" (didacticiel est le mot franais
>> correcte, si ma mmoire est bonne)
>> expliquant les fonctions DOM de php 5.
>>
>> Principalement pour le remplacement (suppression rcriture) d'un
>> extrait d'arbre
>>
>> exemple :
>>
>> <repertoire>
>> <personne id="0001">
>> <nom>lenom</nom>
>> <naissance>1959-05-26Z</naissance>
>> </personne>
>> <personne id="0002">
>> <nom>autrenom</nom>
>> <naissance>1967-07-21Z</naissance>
>> </personne>
>>
>> [...]
>>
>> </repertoire>
>>
>> Je voudrais remplacer "naissance" de personne[@id = "0002"] par
>> "1967-07-31Z"
>>
>> Merci.
>> --
>> cordialement.
>> ____________________
>> Jean-Marie Hoornaert
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Received on Fri Jul 29 13:02:38 2005