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)
>
>
> -- Binary/unsupported file stripped by Ecartis --
> -- Err : No filename to use for decode, file stripped.
> -- Type: image/gif
>
>
> --
> 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)
>
>
--
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 11:21:48 2005