Xpath找到一个唯一的选择器

时间:2011-03-29 00:05:00

标签: php html xml xpath

我希望解析一个预定义字符串的html页面,然后构建一个对该位置的唯一引用。在'Wikken'的帮助下,我已经走到了这一步......但它的工作效果并不正确。

$d = new DOMDocument();
$d->loadXML($xml);
$x = new DOMXPath($d);
$result = $x->evaluate("//text()[contains(.,'STRING')]/ancestor::*/@id");
$unique = null;
for($i = $result->length -1;$i >= 0 && $item = $result->item($i);$i--){
    if($x->query("//*[@id='".addslashes($item->value)."']")->length == 1){
        echo 'Unique ID is '.$item->value."\n";
            $unique = $item->value;
        break;
    }
}
if(is_null($unique)) echo 'no unique ID found';

__ 修改 _

让我再解释一下这个问题。我正在寻找一个可以解析页面并找到唯一字符串的html解析器。然后,我需要找到该位置的唯一占位符,以便当网站上的数据发生变化时,我可以找到新数据。 Wrikken帮我找到了字符串......遗憾的是上面的代码没有正确找到一个独特的css选择器。

1 个答案:

答案 0 :(得分:0)

不确定这是不是你的问题,但我通常会更像第一部分:

//*[contains(text(),'STRING')]/ancestor::*/@id