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

zabourkbir - 14 déc. 2012 à 13:14
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 .

2 réponses

NHenry Messages postés 15114 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 4 mai 2024 159
16 déc. 2012 à 22:50
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
0
cs_47 Messages postés 197 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 20 février 2013 1
18 déc. 2012 à 10:40
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
0
Rejoignez-nous