par Typher007 » 03 avr. 2010, 09:11
C'est faisable, oui. Le plus simple, à mon avis, c'est d'utiliser xPath : <?php // Variables $fichier = 'test.xml'; $racine = '/posts/'; //Ouverture et récupération du XML $dom = new DomDocument(); $dom->load($fichier); // xPath // Ici, la requête va retourner tous les fils de la racine // Il y a moyen d'améliorer la requete pour filtrer et/ou choisir les noeuds $xpath = new Domxpath($dom); $result = $xpath->query($racine.'*'); foreach($result as $noeud) { echo $noeud->nodeValue.'<br />'; } ?>
<?php // Variables $fichier = 'test.xml'; $racine = '/posts/'; //Ouverture et récupération du XML $dom = new DomDocument(); $dom->load($fichier); // xPath // Ici, la requête va retourner tous les fils de la racine // Il y a moyen d'améliorer la requete pour filtrer et/ou choisir les noeuds $xpath = new Domxpath($dom); $result = $xpath->query($racine.'*'); foreach($result as $noeud) { echo $noeud->nodeValue.'<br />'; } ?>
par macgawel » 02 avr. 2010, 17:58
par Typher007 » 02 avr. 2010, 16:54
oui parce que la on a supprimer que le nœud id donc : //item/id[text() = 4]/..
//item/id[text() = 4]/..
par stealth35 » 02 avr. 2010, 15:46
par Typher007 » 02 avr. 2010, 11:34
Comme ceci ? $query= $xpath->query('//item/id[text() = 4]')->item(0); oui
Comme ceci ? $query= $xpath->query('//item/id[text() = 4]')->item(0);
$query= $xpath->query('//item/id[text() = 4]')->item(0);
Fatal error: Uncaught exception 'DOMException' with message 'Not Found Error' in ***\suppr_news.php:24 Stack trace: #0 ***\suppr_news.php(24): DOMNode->removeChild(Object(DOMElement)) #1 {main} thrown in***\suppr_news.php on line 24
$dom = new DomDocument(); $dom->load('../news.xml'); $xpath = new DOMXPath($dom); $query= $xpath->query('//item/id[text() = "4"]')->item(0); //si avec id ===> $dom->documentElement->removeChild($query); <=== echo $dom->saveXML();
par stealth35 » 02 avr. 2010, 00:40
par Typher007 » 02 avr. 2010, 00:26
par stealth35 » 02 avr. 2010, 00:23
Code : Tout sélectionner
<items> <item> <id>4</id> <title>T 4</title> <description>D 4</description> </item> <item> <id>3</id> <title>T 3</title> <description>D 3</description> </item> </items>
//item/id[text() = 4]
par Typher007 » 01 avr. 2010, 15:34
pour supprimer physiquement utilise save
par devlop78 » 01 avr. 2010, 14:46
par stealth35 » 01 avr. 2010, 14:45
par devlop78 » 01 avr. 2010, 14:41
par stealth35 » 01 avr. 2010, 14:38
par devlop78 » 01 avr. 2010, 14:34
par stealth35 » 01 avr. 2010, 14:28