【发布时间】:2011-03-29 00:04:59
【问题描述】:
我希望解析一个预定义字符串的 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 选择器。
【问题讨论】:
-
你需要认真地重新表述这个问题。就目前而言,什么都无法理解。请提供一个完整的(简单的)XML 文档。解释你想生产什么。提供您希望从您提供的确切 XML 文档中生成的确切结果。我很想对这个问题投反对票,但让我给你一个机会。
-
我也不清楚。但是这个
//text()[contains(.,'STRING')]/ancestor::*/@id可能会选择多个属性... -
刚刚编辑...希望更清楚:)