protected function findNamespace($nsFragment) { $returnValue = ''; if (is_null($this->item)) { foreach ($this->queryXPath('namespace::*') as $node) { $name = preg_replace('/xmlns(:)?/', '', $node->nodeName); $uri = $node->nodeValue; if (strpos($uri, $nsFragment) > 0) { $returnValue = $name; break; } } } else { $namespaces = $this->item->getNamespaces(); foreach ($namespaces as $name => $uri) { if (strpos($uri, $nsFragment) > 0) { $returnValue = $name; break; } } if ($returnValue === '') { $returnValue = $this->recursivelyFindNamespace($this->data, $nsFragment); } } return $returnValue; }