FluentDOM\DocumentFragment::appendXml PHP Method

appendXml() public method

Append an xml to the fragment, it can use namespace prefixes defined on the fragment object.
public appendXml ( string $data, null | array | Traversable | DOMElement $namespaces = NULL ) : boolean
$data string
$namespaces null | array | Traversable | DOMElement
return boolean
    public function appendXml($data, $namespaces = NULL)
    {
        $namespaces = $this->namespaces($namespaces);
        if (empty($namespaces)) {
            return parent::appendXml($data);
        } else {
            $fragment = '<fragment';
            foreach ($namespaces as $key => $xmlns) {
                $prefix = $key === '#default' ? '' : $key;
                $fragment .= ' ' . htmlspecialchars(empty($prefix) ? 'xmlns' : 'xmlns:' . $prefix);
                $fragment .= '="' . htmlspecialchars($xmlns) . '"';
            }
            $fragment .= '>' . $data . '</fragment>';
            $source = new Document();
            if ($source->loadXML($fragment)) {
                foreach ($source->documentElement->childNodes as $child) {
                    $this->appendChild($this->ownerDocument->importNode($child, TRUE));
                }
                return TRUE;
            } else {
                return FALSE;
            }
        }
    }