Estoy usando el DOM extension para analizar un archivo xml que contiene xml namespaces. Pensaría que las declaraciones del espacio de nombres se tratan como cualquier otro atributo, pero mis pruebas parecen estar en desacuerdo. Tengo un documento que comienza así:PHP: recuperar todos los espacios de nombres declarados de un 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/"
>
Y un código de prueba como esta:
$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) {}'
Así que las preguntas son:
- ¿Alguien sabe donde puedo encontrar la documentación de
DOMNameSpaceNode
? A search on php.net no produce ningún resultado útil. - ¿Cómo se extraen todas las declaraciones del espacio de nombres de ese elemento DOMElement?
Muchas gracias, esta es definitivamente una solución de trabajo. Supongo que tendré que esperar hasta que la documentación de php se actualice para que la implementación sea correcta. – soulmerge