Salve,
ho questo file xml
e questo codice phpcodice:<?xml version="1.0" standalone="yes"?> <!DOCTYPE lista [ <!ELEMENT lista (utente)*> <!ELEMENT utente (richieste)?> <!ELEMENT richieste (richiesta)*> <!ELEMENT richiesta (#PCDATA)> <!ATTLIST utente id ID #REQUIRED> <!ATTLIST richiesta da IDREF #REQUIRED> ]> <lista> <utente id="id14"> <richieste> <richiesta da="id35"/> <richiesta da="id35"/> </richieste> </utente> <utente id="id35"/> </lista>
Ora, ho un problema, suppongo con la query xpath (che mi sembra giusta) poichè il ciclo foreach viene eseguito 0 volte, non riesco a capire cosa sbaglioCodice PHP:<?php
error_reporting(E_ALL);
$id = 'id35';
$doc = new DomDocument;
$doc->preserveWhiteSpace = false;
$doc->formatOutput = true;
$doc->validateOnParse = true;
$doc->Load('online.xml');
$root = $doc->documentElement;
$utente = $doc->getElementById($id);
$eliminato = $root->removeChild($utente); // rimuove il nodo <utente id="id35"/>
$xpath = new DOMXPath($doc);
$expr = "/lista/utente/richieste/richiesta[@da=$id]";
$entries = $xpath->query($expr);
foreach ($entries as $entry) {
$parent = $entry->parentNode;
$parent->removeChild($entry);
echo "test"; // non lo stampa
}
$doc->save("online.xml");
echo "finished";
?>
Grazie
Patrick


Rispondi quotando
