bonjour
voici mon xml :

<?xml version="1.0"?>
<users>
      <user>
        <name>bbb</name>
        <key>18</key>
        <objects>
            <object>onetwo</object>
            </objects>
    </user>
</users>

voici mon code php

    //include DOMIT! codebase
    require_once('domit/xml_domit_include.php');
    //instantiate a new DOMIT! document
    $xmldoc =& new DOMIT_Document();

    // load the file
    $success= $xmldoc->loadXML("users.xml");

    $name = "bbb";
    $object = "tititititi";

    // get the name node
    $myTextNodeList =& $xmldoc->getNodesByNodeValue($name, $xmldoc);
    $userNode =& $myTextNodeList->item(0);

    // get the objects node
    $objectsNode = $userNode->parentNode->nextSibling->nextSibling;

    // create the node
    $objectNode =& $xmldoc->createElement('objecta');
    $objectNode->appendChild($xmldoc->createTextNode($object));

    // add the node
    $objectsNode->appendChild($objectNode);

    // check the result
    echo $objectsNode->toString(true);

    // save to file
    $xmldoc->saveXML('users.xml', true);

en gros, je recherche le node qui contient le nom $name et je souhaite y rajouter un objet dans le node "objects" correspondant au nom.
ca me fait rien du tout....par contre le "toString" me renvoie le bon arbre.
et si je fais

$objectsNode->parentNode->appendChild($objectNode);

ca me donne :

<?xml version="1.0"?>
<users>
    <user>
        <name>bbb</name>
        <key>18</key>
        <objects>
            <object>onetwo</object>
        </objects>
        <objecta>tititititi</objecta>
    </user>
</users>

normal...
donc quelqu'un a une soluce ? ou c'est un bug dans domit ?
ok, desole pour le derangement Smiley smile en fait, fallait faire :

$objectsNode =& $userNode->parentNode->nextSibling->nextSibling;

je suis sous php 4 et j'avais oublie le "&"

Modifié par ssm2017 (04 Dec 2007 - 01:45)