使用Google文档的importXML,下面的XPath查询工作得很好,但无法使用以下PHP脚本工作。如果我将查询更改为更简单的查询,则该脚本按预期工作。我一直试图解决这个问题很长一段时间,并希望有任何建议。相同的XPath查询使用Google文档,但不使用PHP
非常感谢提前!
$file = fopen('info-urls.txt', "r");
$output = array();
$i=1;
while(!feof($file)){
$line = fgets($file);
echo $line . '<br/>';
$doc = new DOMDocument();
$doc->loadHTMLFile(trim($line));
$xpath = new DOMXpath($doc);
$elements = $xpath->query("substring((//*[self::div or self::p or self::li or self::td or self::tr or self::table or self::h4 or self::h4 or self::h3 or self::h2 or self::h1][contains(text(),'boat') or contains(text(),'bike') or contains(text(),'car')]/text())[1], 0, 499)");
if ($elements->length == 0) {
$output[] = 'N/A';
}else{
foreach ($elements as $element) {
$nodes = $element->childNodes;
foreach ($nodes as $node) {
if(strcmp($node->nodeValue, "")!=0){
$output[] = trim($node->nodeValue);
}
}
}
}
}
array2csv($output);
print_r($output);
function array2csv(array &$array){
$file = 'descriptions.txt';
$csvFormat = "";
for($i=0; $i < sizeof($array); $i++){
$csvFormat .= $array[$i] . ",\n";
}
file_put_contents($file, $csvFormat);
}
脚本description.txt
输出
N/A,
N/A,
N/A,
N/A,
N/A,
XPath查询的作品
//a
请将您的示例缩减为能够产生错误的* single * HTML文档(片段)(以便可以重现该示例,这通常在SO上是必需的)。接下来的事情是你也应该添加可用的xpath查询。 – hakre