在php中将字符串转换为domelement

时间:2013-12-06 19:06:15

标签: php

有没有办法将字符串转换为php(不是DOMDocument)中的DOMElement,以便我可以将其导入DOMDocumment?例如,有HTML字符串:

<div><div>Add Example</div><div>View more examples</div></div>

我想让它好像我使用DOMDocument :: createElement来创建它。然后我想把它附加到DOMDocumment的孩子身上。

1 个答案:

答案 0 :(得分:4)

除非你想编写自己的HTML解析器,否则你需要使用DOMDocument来创建DOMElements。

class MyApp {
   static function createElementFromHTML($doc,$str) {
       $d = new DOMDocument();
       $d->loadHTML($str);
       return $doc->importNode($d->documentElement,true);
   }
}

此方法的问题显示在以下字符串

$str = "<div>1</div><div>2</div>";

这显然没有单亲。相反,你应该准备好处理一个DOMNode的数组

class MyApp {
   static function createNodesFromHTML($doc,$str) {
       $nodes = array();
       $d = new DOMDocument();
       $d->loadHTML("<html>{$str}</html>");
       $child = $d->documentElement->firstChild;
       while($child) {
           $nodes[] = $doc->importNode($child,true);
           $child = $child->nextSibling;
       }
       return $nodes;
   }
}