Example #1
0
 public function &appendNode(DOMNode &$a_tag)
 {
     switch ($this->m_node->nodeType) {
         case XML_DOCUMENT_NODE:
             $node = $this->m_node->isSameNode($a_tag->ownerDocument) ? $a_tag : $this->m_node->importNode($a_tag, true);
             $this->m_node->appendChild($a_tag);
             return $this;
         case XML_ELEMENT_NODE:
             $node = $this->m_node->ownerDocument->isSameNode($a_tag->ownerDocument) ? $a_tag : $this->m_node->ownerDocument->importNode($a_tag, true);
             $this->m_node->appendChild($node);
             return $this;
     }
     return $this;
 }
Example #2
0
 /**
  * @param \DOMNode $sourceNode
  * @param \DOMNode $destinationNode
  * @return \DOMNode|null
  */
 public static function appendTo(\DOMNode $sourceNode, \DOMNode $destinationNode)
 {
     if ($destinationNode instanceof \DOMDocument) {
         if ($sourceNode->ownerDocument === $destinationNode) {
             return $destinationNode->appendChild($sourceNode);
         }
         $ret = $destinationNode->appendChild($destinationNode->importNode($sourceNode, true));
         if ($sourceNode->parentNode !== null) {
             $sourceNode->parentNode->removeChild($sourceNode);
         }
         return $ret;
     }
     if ($sourceNode->ownerDocument === $destinationNode->ownerDocument) {
         return $destinationNode->appendChild($sourceNode);
     }
     $ret = $destinationNode->appendChild($destinationNode->ownerDocument->importNode($sourceNode, true));
     if ($sourceNode->parentNode !== null) {
         $sourceNode->parentNode->removeChild($sourceNode);
     }
     return $ret;
 }