Problème XML suppression
Résolu
griko
Messages postés
343
Date d'inscription
Statut
Membre
Dernière intervention
-
griko Messages postés 343 Date d'inscription Statut Membre Dernière intervention -
griko Messages postés 343 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
pour supprimer un élément de mon fichier xml, j'utilise removeChild() mais ça ne fonctionne pas et je ne vois pas pourquoi !
Voici l'erreur :
la ligne 16 correspond à removeChild()
pour supprimer un élément de mon fichier xml, j'utilise removeChild() mais ça ne fonctionne pas et je ne vois pas pourquoi !
Voici l'erreur :
Fatal error: Uncaught exception 'DOMException' with message 'Not Found Error' in cheminfichier\ajax\deletxml.php:16 Stack trace: #0 cheminfichier\ajax\deletxml.php(16): DOMNode->removeChild(Object(DOMElement)) #1 cheminfichier\ajax\ajax_deletefilm.php(120): include('cheminfichier') #2 {main} thrown in cheminfichier\ajax\deletxml.php on line 16
la ligne 16 correspond à removeChild()
A voir également:
- Problème XML suppression
- Forcer suppression fichier - Guide
- Xml download - Télécharger - Édition & Programmation
- Suppression compte gmail - Guide
- Office xml handler - Télécharger - Traitement de texte
- Driveimage xml - Télécharger - Sauvegarde
6 réponses
$dom->load(longmetrage_xml.xml');Ça commence déjà mal
if ($suppfilm->hasAttribute("id") == $idfilm) {DOMElement::hasAttribute retourne un booléen. Ça fonctionne quand même ainsi si $idfilm n'est pas null, false, une chaine vide ou 0.
$dom->save(longmetrage_xml.xml');Encore une erreur
Voilà la ligne qui pose erreur corrigée :
$suppfilms->getElementsByTagName('films')->item(0)->removeChild($suppfilm);
L'explication : $suppfilms représente le noeud <longmetrage>, hors, c'est depuis le noeud <films> qu'il faut appeler la méthode removeChild() (car c'est ce noeud qui est parent au <film /> qu'on désire supprimer).
Sans source, nous pouvons rien faire comme le dit avion-f16.
Car la si tu veux on va pas t'inventer des codes qui nous sont venus par hasard x').
Car la si tu veux on va pas t'inventer des codes qui nous sont venus par hasard x').
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Voici le code PHP
Et la structure
Et voici la ligne ajoutée entre <films>
switch($filmcm_sortiesall['type_film_o_cm']){ case'longmetrage': $dom = new DomDocument(); $dom->load(longmetrage_xml.xml'); $suppfilms = $dom->documentElement; $film = $suppfilms->getElementsByTagName("film"); foreach($film as $suppfilm){ if ($suppfilm->hasAttribute("id") == $idfilm){ if ($suppfilm->getAttribute("id") == $idfilm){ //print_r($suppfilm); $suppfilms->removeChild($suppfilm); } } } $dom->save(longmetrage_xml.xml'); break; }
Et la structure
<?xml version="1.0" encoding="ISO-8859-1"?> <longmetrage> <films></films> </longmetrage>
Et voici la ligne ajoutée entre <films>
<film id="" name="" url=""/>
Autrement à l'instant, je viens de voir un problème sur un fichier qui fonctionnais bien !
En faite il y a 8 jours, j'ai utilisé $dom->load(le fichier) et là ça fonctionnais très bien mais aujourd'hui je dois réutiliser ça mais ce n'est plus le fichier actualisé en date d'aujourd'hui mais celui de la dernière fois !
Pourquoi ? !
J'ai pensé qu'il fallait fermer le fichier après lecture, vrai ou faux ? Sinon pourquoi ça fait ça ?
Edit : Sinon, peut être que c'est mieux créer un nouveau fichier de copier dedans avant de lire et après lecture, supprimer ce fichier ?
J'ai donc utiliser $dom->load()
Mais aujourd'hui, j'ai découvert en ré utilisant cette fonction que c'était les mêmes données que la semaine dernière.
Sachant que le fichier xml à été modifier depuis la semaine dernière.
Donc je comprends pas pourquoi j'ai encore l'ancien fichier alors que on m'avait dit que l'utilisation de load() permettait de rechercher le fichier.
Une idée ? de comment faire pour avoir le fichier à jour ?
Si non, alors vérifie que le chmod soit suffisant pour que PHP puisse écrire sur le fichier, ou que tu utilises bien $dom->save()
Si oui, alors c'est plutôt étrange.
Sachant que quand je regarde le fichier http://www.xxxx.com/n1/Salles.xml, dans un navigateur il affiche le contenu de cette semaine.