DiDom\Element::setInnerHtml PHP Метод

setInnerHtml() публичный Метод

Sets inner HTML.
public setInnerHtml ( string $html ) : Element
$html string
Результат Element
    public function setInnerHtml($html)
    {
        if (!is_string($html)) {
            throw new InvalidArgumentException(sprintf('%s expects parameter 1 to be string, %s given', __METHOD__, is_object($html) ? get_class($html) : gettype($html)));
        }
        // remove all child nodes
        foreach ($this->node->childNodes as $node) {
            $this->node->removeChild($node);
        }
        if ($html !== '') {
            Errors::disable();
            $html = "<htmlfragment>{$html}</htmlfragment>";
            $document = new Document($html);
            $fragment = $document->first('htmlfragment')->getNode();
            foreach ($fragment->childNodes as $node) {
                $newNode = $this->node->ownerDocument->importNode($node, true);
                $this->node->appendChild($newNode);
            }
            Errors::restore();
        }
        return $this;
    }

Usage Example

Пример #1
0
 public function testIsCommentNode()
 {
     $element = new Element('div');
     $element->setInnerHtml(' Foo <span>Bar</span><!-- Baz -->');
     $children = $element->children();
     $this->assertFalse($children[0]->isCommentNode());
     $this->assertFalse($children[1]->isCommentNode());
     $this->assertTrue($children[2]->isCommentNode());
 }