/** * @param \DOMNode $node * @param string|NULL $prefix * @param string $uri * @return bool */ private function canAddNamespaceToNode(\DOMNode $node, $prefix, $uri) { $prefix = empty($prefix) ? NULL : $prefix; $currentUri = $node->lookupNamespaceUri($prefix); $hasNoNamespace = empty($node->namespaceURI); if ($hasNoNamespace && empty($prefix)) { return FALSE; } elseif (empty($currentUri)) { return $currentUri !== $uri; } return FALSE; }
/** * @param string $nodeName * @param \stdClass $properties * @param \DOMNode $parent * @return string */ private function getNamespaceForNode($nodeName, \stdClass $properties, \DOMNode $parent) { $prefix = substr($nodeName, 0, strpos($nodeName, ':')); $xmlns = $this->getNamespacePropertyName($prefix); return isset($properties->{$xmlns}) ? $properties->{$xmlns} : $parent->lookupNamespaceUri(empty($prefix) ? NULL : $prefix); }