19 $this->nodeType = self::DOCUMENT_NODE;
20 $this->nodeName =
'#document';
22 $this->ownerDocument = $this;
33 $this->parser->parse($source, $this);
40 public function saveHTML(
Node $node =
null)
46 if(self::$isNodeListAsArray)
52 $result .= $child->getOuterHTML();
63 $result .= $child->getOuterHTML();
71 return $node->getOuterHTML();
79 if(!$this->queryEngine)
118 public function adoptNode(
Node $source)
130 foreach($attrList as $attr)
133 $attr->setOwnerDocument($this);
142 $child->setOwnerDocument($this);
153 static $classByTag = [];
155 $tagName = mb_strtoupper($tagName);
156 $elementClass =
"Bitrix\\Main\\Web\\DOM\\Element\\" . $tagName;
158 if(!isset($classByTag[$tagName]))
160 if(class_exists($elementClass))
162 $classByTag[$tagName] = $elementClass;
166 $classByTag[$tagName] =
false;
170 if($classByTag[$tagName])
172 $elementClass = $classByTag[$tagName];
173 $node =
new $elementClass($tagName);
180 $node->setOwnerDocument($this);
193 $node->setOwnerDocument($this);
205 $node->setOwnerDocument($this);
217 $node->setOwnerDocument($this);
237 return (!empty($resultList)) ? current($resultList) :
null;
247 return (!empty($resultList)) ? current($resultList) :
null;
268 $attrName = mb_strtolower($attrName);
275 'value' => $attrValue,
297 $tagName = mb_strtoupper($tagName);
336 public function getDocumentElement()
341 if($child->getNodeName() ===
'HTML')
354 public function getHead()
356 if(!$this->getDocumentElement())
364 if($child->getNodeName() ===
'HEAD')
379 if(!$this->getDocumentElement())
387 if($child->getNodeName() ===
'BODY')
createAttribute($name, $value)
getElementByClassName($className)
getElementsByClassName($className, $limit=0)
getElementsByTagName($tagName)
setQueryEngine(QueryEngine $engine)
getElementsByAttr($attrName, $attrValue=null, $limit=0)
setParser(Parser $parser)
setOwnerDocument(Document $owner)
static $isNodeListAsArray
const FILTER_OPERATION_EQUAL
const FILTER_ATTR_CLASS_NAME
static getQuerySelectorEngine()