Ciao,
ho scoperto che il metodo $doc->getElementById($ID) non funziona su PHP se non dopo aver validato il documento.
Questa cosa mi stupisce, perché è un metodo basilare per l'identificazione di un oggetto attraverso l'attributo univoco per eccellenza, cioè appunto l'ID.
Comunque, dovendo piegarci a questa realtà di PHP, provo a validare il documento:
Codice PHP:
$doc = new DOMDocument("1.0", "UTF-8");
$doc->loadXML('<books>
<item>Storie di Nonna Papera</item>
<item id="pippo" title="click">Il ratto di Topolinia</item>
</books>');
if ($doc->validate()) { echo "Documento valido!
"; } else { echo "Non valido!
"; }
$a = $doc->getElementById("pippo");
echo $a->getAttribute("title");
Lo script stampa "Non valido", e l'interprete restituisce "No DTD given in XML-Document".
Ovviamente poi neanche getElementById() restituisce qualcosa.
Vi chiedo allora: sapete come si dichiara il DTD nel documento DOM per passare questa validazione?