Forum Clubic

Problème SimpleXML

Bonjour,
J’aimerais utiliser une dérivée de la fonction simpleXML pour pouvoir modifier un fichier xml deja existant (insérer des balises entre des balises deja existantes) et s’il n’existe pas, en créer un vide.
j’ai pas mal cherché sur le net, je n’ai trouvé qu’avec DOM, je voudrais juste savoir si c’est possible avec simpleXML
Merci.
Edité le 20/05/2008 à 18:49

Effectivement, il est possible de modifier un fichier xml avec simpleXML (ajouter, créer, etc) :

SimpleXMLElement->addAttribute() ? Adds an attribute to the SimpleXML element
SimpleXMLElement->addChild() ? Adds a child element to the XML node
SimpleXMLElement->asXML() ? Return a well-formed XML string based on SimpleXML element
SimpleXMLElement->attributes() ? Identifies an element’s attributes
SimpleXMLElement->children() ? Finds children of given node
SimpleXMLElement->__construct() ? Creates a new SimpleXMLElement object
SimpleXMLElement->getDocNamespaces() ? Returns namespaces declared in document
SimpleXMLElement->getName() ? Gets the name of the XML element
SimpleXMLElement->getNamespaces() ? Returns namespaces used in document
SimpleXMLElement->registerXPathNamespace() ? Creates a prefix/ns context for the next XPath query
SimpleXMLElement->xpath() ? Runs XPath query on XML data
simplexml_import_dom ? Get a SimpleXMLElement object from a DOM node.
simplexml_load_file ? Interprets an XML file into an object
simplexml_load_string ? Interprets a string of XML into an object

fr3.php.net…

je ne sais pas si on peut faire l’équivalent exact de ceci avec simple xml, c est a dire ajouter des choses dans un fichier xml a partir de l’élément racine :

$document = new DomDocument();
$document->load(‘fichier.xml’);

$message = $document->createElement(“message”);
$document->documentElement->appendChild($message);
$date = $document->createElement(“date”,“une autre date” );
$date = $message->appendChild($date);
$pseudo = $document->createElement(“pseudo”,“un autre pseudo” );
$pseudo = $message->appendChild($pseudo);
$corps = $document->createElement(“corps”,“un autre corps” );
$corps = $message->appendChild($corps);
$document->save(‘fichier.xml’);

avec ->__construct() et addChild()
il faut lire la doc de simpleXML pour comprendre comment ça marche, il y a des exemples sur le net ; )