我正在使用以下代码
$page_data=array();//$title_links is array having urls
$nodearr=array();
foreach ($title_links as $b_url)
{
$page_data[]= mycurl($b_url);//my curl function, it is okay
$dom2 = new DOMDocument();//creating new domdocument object inside a domdocument object
@$dom2->loadHTML($page_data[]);
$xpath_cat = new DOMXPath($dom2);//same as domdocument , nesting xpath
$nodelist = $xpath_cat->query('//span[@class="zg_hrsr_ladder"]', $dom2);
//echo nodeslist;
foreach ($nodelist as $node) {
$nodearr[] = $node->textContent;
}
}
所以现场是,
我在其他'DomDocument'中嵌入'domdocument' 使用'foreach loop',我在DomDocument中插入数组元素 aslo,因为我是domdocument中的nestind domdocument,所以我是 声明新的xpath查询
问题是......
澄清:
$ title_links是使用curl获得的,它是网址 使用domdocument和xpath查询从网页中提取。 所以 $ title_links位于xpath和domdocument的第一级,以及$ nodelist 是嵌套od xpath和dom-document 的第二级
答案 0 :(得分:0)
你失败的原因是:@$dom2->loadHTML($page_data[]);
[]
只能用于作业,而不能用于阅读。你需要actullay有一个你可以参考的密钥。我可能会这样做:
$page_data=array();//$title_links is array having urls
foreach ($title_links as $key => $b_url)
{
$page_data[$key]= mycurl($b_url);//my curl function, it is okay
$dom2 = new DOMDocument();
$dom2->loadHTML($page_data[$key]); // error suppression is evil!
$xpath_cat = new DOMXPath($dom2);
}
我仍然不清楚这里是否有任何嵌套,你没有嵌套任何你只是在数组上迭代的东西。