2016-01-16 50 views
1

我有一个字符串,有大量的<li>数据集。我想得到这个值:如何获得onclick的值=使用xpath?

1: call.php?category=fruits&amp;fruitid=123456 

里面onclick使用xpath。我当前的xpath不支持我的onclick值,所以我进一步解析它以获取我所需的数据!任何人都可以告诉我什么是正确的xpath来获得onclick的价值?

libxml_use_internal_errors(true); 
$dom = new DOMDocument; 
$dom->loadHTML($code2); 
$xpath = new DOMXPath($dom); 

// Empty array to hold all links to return 
$result = array(); 

//Loop through each <li> tag in the dom 
foreach($dom->getElementsByTagName('li') as $li) { 
    //Loop through each <a> tag within the li, then extract the node value 
    foreach($li->getElementsByTagName('a') as $links){ 
     $result[] = $links->nodeValue; 
     echo $result[0] . "\n"; 
    } 



    $onclicks = $xpath->query("//li/a/onclick"); 

foreach ($onclicks as $onclick) { 
    echo $onclick->nodeValue . "\n"; 
} 
} 

数据:

<li><a id="FR123456" onclick="setFood(false);setSeasonFruitID('123456');getit('call.php?category=fruits&amp;fruitid=123456&amp;',detailFruit,false);">mango season</a><img src="http://imagehosting.com/images/fru_123456.png"> 
      </li> 

回答

1

onclick是一个属性,并使用@attribute_name XPath中引用属性:

$onclicks = $xpath->query("//li/a/@onclick"); 

foreach ($onclicks as $onclick) { 
    echo $onclick->nodeValue . "\n"; 
} 
1

尝试是这样的:

$onclicks = $xpath->query("//li/a"); 

foreach ($links as $link) { 
    echo $link->getAttribute('onclick'). "\n"; 
}