我想使用XPath和PHP从每个URL中提取一些信息。即使从XPath查询返回任何内容,为每个URL都打印一些内容也很重要。因此,我试图设置脚本来打印出N/A
,XPath没有返回任何结果。但是,从不输入此else
子句,并且从不打印N/A
。在所有情况下使用XPath和PHP进行打印
scrape.txt
包含50个URL。结果返回47/50网址。我不关心我的XPath查询,但更关心脚本本身为每个尝试的URL返回一些值。
有人可以帮助我确定为什么发生这种情况,并帮助我想出一种方法来保证某些字符串被打印,而不管是否有从XPath查询返回的结果?
我会很感激任何建议。提前谢谢了!
$file = fopen('scrape.txt', "r");
$output = array();
while(!feof($file)){
$line = fgets($file);
$doc = new DOMDocument();
$doc->loadHTMLFile($line);
$XPath = new DOMXPath($doc);
$elements = $XPath->query("//ul/li[1]/a[@class='geMain']");
if (!is_null($elements)) {
foreach ($elements as $element) {
$nodes = $element->childNodes;
foreach ($nodes as $node) {
if(strcmp($node->nodeValue, "")!=0){
$output[] = trim($node->nodeValue);
}
}
}
}else{
$output[] = "N/A";
}
}
array2csv($output);
+1,这也正是我需要,谢谢! – AnchovyLegend