/** * 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; }
/** * @param array $list * @return XsSequence * @throws UnknownSequenceItemException */ public static function fromArray(array $list) { /** @var DOMDocument $sequence */ $sequence = new self(); foreach ($list as $item) { if (is_scalar($item)) { // do not use nodeValue // https://bugs.php.net/bug.php?id=31613 $child = $sequence->createElementNs(XmlSchema::URI, 'xs:item'); $child->setAttribute('type', gettype($item)); $child->textContent = $item; $sequence->documentElement->appendChild($child); } elseif ($item instanceof DOMElement) { $child = $sequence->importNode($item, true); $sequence->documentElement->appendChild($child); } elseif ($item instanceof DOMAttr) { $child = $sequence->createElementNs(XmlSchema::URI, 'xs:item', $item->nodeValue); $child->setAttribute('type', gettype($item)); $sequence->documentElement->appendChild($child); } else { // @codeCoverageIgnoreStart throw new UnknownSequenceItemException(); // @codeCoverageIgnoreEnd } } return $sequence; }
/** * * @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; }
/** * @param array $list * @return XsSequence * @throws UnknownSequenceItemException */ public static function fromArray(array $list) { /** @var DOMDocument $sequence */ $sequence = new self(); foreach ($list as $item) { if (is_scalar($item)) { $child = $sequence->createElementNs(XmlSchema::URI, 'xs:item', $item); $child->setAttribute('type', gettype($item)); $sequence->documentElement->appendChild($child); } elseif ($item instanceof DOMNode && $item->prefix === 'xs') { $child = $sequence->importNode($item, true); $sequence->documentElement->appendChild($child); } else { // @codeCoverageIgnoreStart throw new UnknownSequenceItemException(); // @codeCoverageIgnoreEnd } } return $sequence; }
public function duplicate() { $dom = new self(); $firstChild = $dom->importNode($this->firstChild, true); $dom->appendChild($firstChild); return $dom; }