0

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

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

4

2 回答 2

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

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

于 2012-07-28T15:50:06.623 回答
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来获取第二个跨度或第 n 个元素

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

于 2013-08-06T13:40:22.003 回答