如何获得onclick =使用xpath的值?

时间:2016-01-16 21:18:43

标签: php parsing dom xpath

我有一个包含大量<li>个数据集的字符串。我想得到这个值:

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

使用xpath在onclick内部。我当前的xpath没有得到onclick值,所以我进一步解析它以获取我所需的数据!任何人都可以告诉我获取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>

2 个答案:

答案 0 :(得分:1)

onclick是一个属性,您使用@attribute_name来引用XPath中的属性:

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

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

答案 1 :(得分:1)

尝试这样的事情:

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

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