Example #1
0
 /**
  * Return a clone of the document>.
  *
  * @return SuiteDocument
  */
 public function duplicate()
 {
     $document = new self();
     $node = $document->importNode($this->firstChild, true);
     $document->appendChild($node);
     return $document;
 }
Example #2
0
 /**
  *
  * @return XMLDom
  */
 public static function adapt(\DOMDocument $dom)
 {
     $new = new self();
     foreach ($dom->childNodes as $child) {
         $n = $new->importNode($child, true);
         if ($n) {
             $new->appendChild($n);
         }
     }
     return $new;
 }
Example #3
0
 /**
  * @param array $option
  * @param integer $currentXml
  * @return array
  */
 private function internalParse(array &$option, $currentXml = 0)
 {
     if ($currentXml == 0) {
         if (!isset($option[0])) {
             return array();
         }
         $currentXmlArray = $option[0];
         $this->setName(isset($currentXmlArray['tag']) ? $currentXmlArray['tag'] : 'noname');
         $this->setValue(isset($currentXmlArray['value']) ? $currentXmlArray['value'] : '');
         $this->setAttributes(isset($currentXmlArray['attributes']) ? $currentXmlArray['attributes'] : array());
         $this->setRoot(true);
     }
     $xmlArray = array();
     $currentXml++;
     $deep = $currentXml;
     while ($deep < count($option)) {
         $currentXmlArray = $option[$deep];
         if ($currentXmlArray['type'] == 'close') {
             return array($xmlArray, $deep);
         }
         $xmlObject = new self('');
         $xmlObject->setName(isset($currentXmlArray['tag']) ? $currentXmlArray['tag'] : 'noname');
         $xmlObject->setValue(isset($currentXmlArray['value']) ? $currentXmlArray['value'] : '');
         $xmlObject->setAttributes(isset($currentXmlArray['attributes']) ? $currentXmlArray['attributes'] : array());
         if ($currentXmlArray['type'] == 'open') {
             $result = $this->internalParse($option, $deep++);
             if (!empty($result)) {
                 list($children, $deep) = $result;
                 $xmlObject->appendChild($children);
             }
         }
         $xmlArray[$xmlObject->getName()][] = $xmlObject;
         $deep++;
     }
     return array($xmlArray, $deep);
 }
Example #4
0
 public function duplicate()
 {
     $dom = new self();
     $firstChild = $dom->importNode($this->firstChild, true);
     $dom->appendChild($firstChild);
     return $dom;
 }