如何使用 xpath 获取 onclick= 的值


How to get value of onclick= using xpath?

我有一个字符串,里面有很多<li>数据集。我想获取此值:

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

内部点击使用 xpath.我当前的 xpath 没有为我获取 onclick 值,所以我进一步解析它以获取所需的数据!谁能告诉我获得点击值的正确 xpath 是什么?

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>

onclick 是一个属性,您可以使用 @attribute_name 在 XPath 中引用属性:

$onclicks = $xpath->query("//li/a/@onclick");
foreach ($onclicks as $onclick) {
    echo $onclick->nodeValue . "'n";
}

尝试这样的事情:

$onclicks = $xpath->query("//li/a");
foreach ($links as $link) {
    echo $link->getAttribute('onclick'). "'n";
}