Php 为什么不';这些Xpath元素不是数组吗?
所以这在foreach中运行良好,我认为这意味着$elements是一个数组Php 为什么不';这些Xpath元素不是数组吗?,php,arrays,xpath,Php,Arrays,Xpath,所以这在foreach中运行良好,我认为这意味着$elements是一个数组 $DOM = new DOMDocument(); $DOM->loadHTML($content); $xpath = new DOMXPath($DOM); $elements= $xpath->query('//li'); foreach($elements as $element){ $newdoc = new DOMDocument(); $cloned = $element-
$DOM = new DOMDocument();
$DOM->loadHTML($content);
$xpath = new DOMXPath($DOM);
$elements= $xpath->query('//li');
foreach($elements as $element){
$newdoc = new DOMDocument();
$cloned = $element->cloneNode(TRUE);
$newdoc->appendChild($newdoc->importNode($cloned,TRUE));
$lis .= $newdoc->saveHTML();
}
但是这个
if ($elements[0]) {
echo $elements[0]->nodeValue;
}
给定不能将DOMNodeList类型的对象用作数组
foreach()没有类方法,那么为什么它在DOMNodeList上运行时就好像它是一个数组,而显然它不是一个数组?php文档对此进行了完美的解释:该类实现了接口,允许在该类的对象上使用 请注意,您可以使用
item
方法按索引访问列表中的任何元素:
$elements->item(0)->nodeValue
我猜想php的foreach函数知道如何迭代数组以外的对象,但要从DomNodeList获取数组,请使用以下方法:
$arr = [];
foreach ($elements as $element) {
$arr[] = $element;
}
echo $arr[0]->nodeValue;
非常感谢。我会仔细看看这些文件。首次使用DOMDocument和Xpath