Zend_Dom_查询如何获取当前节点的html代码


Zend_Dom_Query how to get html code of current node

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

$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>

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

Iconv在这里存在是因为我有俄罗斯字符。

我最近正在开发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循环节点,以获得第2个跨度或第n个元素

请查看PHP:DOMElement-Manual和PHP:DOMNodeList了解更多信息。