2012-07-27 119 views
2

我想如果我打印出$rt的含量比progrighthead类从HTML如何使用xpath获取元素?

$xdata = simplexml_import_dom($doc); 
$datas = $xdata->xpath("//*[@class='proglist']"); 
$aData = array(); 
foreach($datas as $data) 
{ 

    $rightdatas = $data->xpath("*[@class='progright']"); 
    $rt = $rightdatas[0]; 
    print_r($rt); 
    $content = $rt->xpath("*[@class='progrighthead']"); 
    print_r($content ); 
} 

得到一些数据是存在的,但$content变量是空的。为什么?

为什么我会收到以下语法的相同结果?

$xdata = simplexml_import_dom($doc); 
$datas = $xdata->xpath("//*[@class='proglist']"); 
$aData = array(); 
foreach($datas as $data) 
{ 

    $rightdatas = $data->xpath("*[@class='progright']"); 
    $rt = $rightdatas[0]; 
    print_r($rt); 
    $content = $rt->xpath("*[@class='progrighthead']"); 
}  

$datas = $xdata->xpath("//*[@class='progrighthead']"); 
+3

请问您可以包含加载的文件吗? – meiamsome 2012-07-27 13:08:06

回答

2

progrighthead不是progright的一个孩子,但后裔。使用

$rt->xpath(".//*[@class='progrighthead']"); 

//放在开头意味着从根开始搜索,而不是从当前元素开始搜索。