comment supprimer fils (livre) de noeud "biblio" ?

- - Dernière réponse : cs_47
Messages postés
197
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
20 février 2013
- 18 déc. 2012 à 10:40
voila mon fichier biblio .xml
<?xml version="1.0"?>

<livre>
personne
<titre>projet xml</titre>
<description>2012</description>
</livre>
<livre>
auteur2
<titre>projet xml</titre>
<description>dom php</description>
</livre>


//je veux supprimer un live dont le titre est récupéré de puis un formulaire
en utilisant Dom php et merci d'avance .
Afficher la suite 

2 réponses

Messages postés
14594
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
16 novembre 2019
137
0
Merci
Bonjour,

Comment charges-tu le fichier ?
Si tu utilises l'espace de nom Sustem.Xml et le XmlDocument, explores la structure des objets.

v----Signature--------v----------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
Commenter la réponse de NHenry
Messages postés
197
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
20 février 2013
1
0
Merci
Bonjour,

En utilisant XPath (avec DOMDocument) ça devrait passer.
<?php

$docXML = new DOMDocument('1.0', 'utf-8');
$docXML->load('test.xml');

$xpath = new DOMXPath($docXML);
$query = '//biblio/livre[titre="projet xml"]';
$entries = $xpath->query($query);

foreach ($listEntries as $entry) {
    $entry->parentNode->removeChild($entry);
}    

$docXML->save('test.xml');



On peut faire pareil, sans utiliser XPath, en utilisant la méthode getElementsByTagName et en faisant une comparaison entre la valeur du node et la valeur recherchée.

bonne journée
Commenter la réponse de cs_47