我有节点,并在循环中迭代它们。
$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了解更多信息。