Zend_Dom_Query如何获取当前节点的html代码

时间:2012-07-28 14:40:37

标签: php zend-dom-query

我有节点,并循环迭代它们。

$html = <<<HTML
    <div id="test">
    <span>1</span>
    <span>2</span>
    </div>
HTML;
$dom= new Zend_Dom_Query($html);
$results = $dom->query('span');
foreach($results as $node){
...
}

如何获取节点的HTML代码? (不是innerHTML,完整的HTML代码<span>1</span>

2 个答案:

答案 0 :(得分:2)

$htmlNode = iconv('UTF-8','ISO-8859-1',$results->getDocument()->saveXML($node));

Iconv存在于此,因为我有俄文字符。

答案 1 :(得分:2)

我最近在研究Zend_Dom_Query。很难想清楚这一点。终于得到了解决方案。所以这个答案适合那些仍在那里苦苦挣扎的人。

$dom = new Zend_Dom_Query($html);
$results = $dom->query('div#test');
foreach($results as $node){
    if($node->hasChildnodes()) {
        $childNodes = $node->childNodes;
        $countOfNodes = $childNodes->length;
        $firstSpan = $childNodes->item(0)->C14N();
    }
}

$firstSpan将包含<span>1</span>。您还可以使用$countOfNodes遍历节点以获取第二个span或第n个元素

请查看PHP:DOMElement - ManualPHP:DOMNodeList了解详情。