Не совсем. Когда вы выполните print_r()
или var_dump()
объекта, представляющего XML с пространством имен, вы заметите, что все узлы с пространством имен отсутствуют. Есть несколько способов получить узлы пространства имен. Одним из способов является использование registerXPathNamespace () в сочетании с xpath () :
$xml = simplexml_load_file('some/namespaced/xml/file.xml');
$xml->registerXPathNamespace('prefix', 'http://Namespace/Uri/Here');
$xml->xpath('//prefix:node'); //get all <prefix:node> XML nodes.
Другой способ - использовать children () для получения дочерних узлов:
$xml = simplexml_load_file('some/namespaced/xml/file.xml');
$xml->children('prefix', true); //get all nodes with the 'prefix' prefix that are direct descendants of the root node.
$xml->someNode->children('blah', true); //get all nodes with the 'blah' prefix that are direct descendants of <someNode>