Salve ,
ho un quesito , gestisco una galleria che ha come archivio il seguente xml (photos.xml) :
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="prova.xsl"?>
<gallery>
<sitename>Galleria</sitename>
<images id="images">
<image path="001.jpg">
<meta name="title">immagine 1</meta>
</image>
<image path="002.jpg">
<meta name="title">immagine 1</meta>
</image>
<image path="003.jpg">
<meta name="title">immagine 1</meta>
</image>
<image path="004.jpg">
<meta name="title">immagine 1</meta>
</image>
</images>
</gallery>
e tramite PHP DOM aggiorno l'xml ogni volta che carico un'immagine sul server con il seguente codice:
// Creo un nodo image
$doc = new DOMDocument();
$doc->load('photos.xml');
$child= $doc->getElementsByTagName('images');
$image = $doc->createElement('image');
$child->item(0)->appendChild($image);
// assegno l'attributo path con il percorso dell'immagine
$image-> setAttribute('path', $_FILES['immagine']['name']);
$image-> setIdAttribute('path', true);
// assegno il contenuto del nodo image
$meta = $doc->createElement("meta");
$meta->appendChild($doc->createTextNode($_REQUEST['testo']));
$image->appendChild( $meta );
$meta-> setAttribute('name', 'title');
$meta-> setIdAttribute('name', true);
$doc->save('photos.xml');
ecco il quesito, con che codice si puo' invece al contrario cancellare il nodo image solo se contiene un attributo
path con un dato valore (esempio : foto1)?
Ho provato con questo codice basandomi su un topic trovato nel forum ma non funziona
<?php
$doc = new DOMDocument();
$doc->load('photos.xml');
$xpath = new DOMXPath($doc);
$root = $doc->documentElement;
$query = "/gallery/images/image[meta/text()='foto1']";
$image = $xpath->query($query);
$root->removeChild($image);
echo $doc->saveXML();
?>
E' possibile avere un aiuto per favore?
Grazie
Ruggero