simplexml - suppression d'elements - probleme avec unset? [resolu] - PHP - Programmation
Marsh Posté le 22-09-2007 à 19:49:16
Par "ça ne marche pas" (qui ne veut en soi absolument rien dire...), je suppose que tu sous-entends que le unset ne produit aucun effet ?
Dis-moi ce que te sort ceci :
Code : |
Marsh Posté le 22-09-2007 à 20:56:22
Code :
|
Finalement je m'en suis sorti avec dom, pour la structure que j'ai dans mes xml c'est pas trop compliqué, mais si tu as une idée du problème avec le unset j'aimerais bien comprendre (j'ai passé quasi l'apres midi en conjectures diverses )
Et quand je dit "ca ne marche pas" c'est pas tres explicite je te l'accordes !
En gros ca ne fait strictement rien, ni erreur de compilo ni écriture dans le fichier...
j'ai testé en local avec wamp, et en ligne sur mon serv, rien a faire.
Marsh Posté le 23-09-2007 à 10:29:07
Je ne connais pas très bien simplexml, mais il semblerait qu'$xml->date soit un objet et non un tableau d'objets. (Donc le bazar utilise probablement une interface genre ArrayAccess de la SPL pour pouvoir accéder comme ça aux éléments... auquel cas unset n'est pas censé marcher a priori.)
De toute façon je ne crois pas que simplexml gère la suppression d'éléments, donc t'es bien mieux avec DOM pour faire des trucs de ce genre.
Marsh Posté le 23-09-2007 à 12:33:14
Et si tu mettais :
Code :
|
$xml->date[0] c'est différent de $xml->date['0']. Dans le premier cas c'est l'index 0 du tableau (entier), dans l'autre c'est l'index '0' (string).
Marsh Posté le 23-09-2007 à 13:49:48
Normalement $array[0] et $array['0'] reviennent au même en PHP.
Code : |
affiche 'bar == bar'.
Marsh Posté le 23-09-2007 à 17:05:31
merci à vous deux.
Je n'ai pas testé la solution de vanadium car j'ai completement basculé en dom, et ca marche tres bien.
Marsh Posté le 22-09-2007 à 13:35:25
hello tout le monde,
J'ai un petit bout de code qui me résiste depuis un bout de temps je ne parviens pas a trouver la source du probleme...
Ce code ne fonctionne pas chez moi, pourtant, sans rien changer d'autre, si je remplace "unset($xml->date[$val]);" par "unset($xml->date[0]);" ca marche parfaitement.
J'ai donc mis echo '$val' voir si le probleme venais de la variable passée en parametre a unset mais non... le echo me sors bien une valeure 0 ou 1 ...
Pour infos $_POST["date"] contiens les données de checkboxes d'un formulaire ayant pour noms 'date[]';
Je me doutes que bon nombres vont m'envoyer vers dom (j'aimerais eviter mais bon...si y'as pas d'autres solutions!) mais j'aimerais tout de meme comprendre pourquoi ca marche pas dans ce cas précis
Merci a ceux qui auront un peu de temps a me consacrer
Message édité par graphix le 23-09-2007 à 17:03:59