我想使用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