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]
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]
Comme ceci ?
$query= $xpath->query('//item/id[text() = 4]')->item(0);
Comme ceci ?
$query= $xpath->query('//item/id[text() = 4]')->item(0);
oui
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
Ligne 24 ( flèche ) :$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();
//item/id[text() = 4]/..A merci super ! sa marche parfaitement !oui parce que la on a supprimer que le nœud id donc ://item/id[text() = 4]/..
<?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 />';
}
?>Merci, je ne savais pas qu'on pouvais faire avec ça, bien utile le xPath !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 />'; } ?>