Sto utilizzando lo DOM extension per analizzare un file xml contenente xml namespaces. Avrei pensato che le dichiarazioni dei namespace sono trattate come qualsiasi altro attributo, ma i miei test sembrano non essere d'accordo. Ho un documento che inizia così:PHP: richiama tutti gli spazi dei nomi dichiarati di una DOMElement
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://purl.org/rss/1.0/"
xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:syn="http://purl.org/rss/1.0/modules/syndication/"
xmlns:prism="http://purl.org/rss/1.0/modules/prism/"
xmlns:admin="http://webns.net/mvcb/"
>
E un codice di test come questo:
$doc = new DOMDocument();
$doc->loadXml(file_get_contents('/home/soulmerge/tmp/rss1.0/recent.xml'));
$root = $doc->documentElement;
var_dump($root->tagName);
# prints 'string(7) "rdf:RDF"'
var_dump($root->attributes->item(0));
# prints 'NULL'
var_dump($root->getAttributeNode('xmlns'));
# prints 'object(DOMNameSpaceNode)#3 (0) {}'
Quindi le domande sono:
- Qualcuno sa dove potrei trovare la documentazione di
DOMNameSpaceNode
? A search on php.net non produce alcun risultato utile. - Come estrarre tutte quelle dichiarazioni dello spazio dei nomi da quel DOMElement?
Mille grazie, questa è sicuramente una soluzione funzionante. Suppongo che dovrò aspettare fino a quando la documentazione php non verrà aggiornata per ottenere l'implementazione giusta. – soulmerge