Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用查询函数在PHP DOMXPath中搜索XPath_Php_Xpath_Domdocument_Domxpath - Fatal编程技术网

使用查询函数在PHP DOMXPath中搜索XPath

使用查询函数在PHP DOMXPath中搜索XPath,php,xpath,domdocument,domxpath,Php,Xpath,Domdocument,Domxpath,我有一个DOMXPath对象,是我从一个DOMDocument创建的,这是一个amazon网站: 我正在尝试使用一些在我的Google Chrome上工作的XPath,但是当我在DOMXPath上尝试它们时,它们似乎不起作用 以下是一个例子: $dom = new \DOMDocument(); $dom->loadHTML($html);//HTML is amazon url $html_document= new \DOMXPath($dom);

我有一个DOMXPath对象,是我从一个DOMDocument创建的,这是一个amazon网站:

我正在尝试使用一些在我的Google Chrome上工作的XPath,但是当我在DOMXPath上尝试它们时,它们似乎不起作用

以下是一个例子:

    $dom = new \DOMDocument();
    $dom->loadHTML($html);//HTML is amazon url
    $html_document= new \DOMXPath($dom);    
    $html_document->query('//*[@id="dp"]//*[@id="productTitle"]/text()');
如果您在Google Chrome inspector上检查XPath,您将看到它是有效的,并且它为您提供了产品名称。如果我只放“/*[@id=“productTitle”]/text()”就行了,但问题是我需要知道为什么另一种方法不行,因为有时我需要那种XPath


谢谢

一些网站在加载时使用javascript来显示某些内容。值得保存您在DOMDocument中使用的
$html
,看看它是否与在线版本具有相同的结构。情况并非如此,好像我使用“/*[@id=“productTitle”]/text()”有效,但如果我使用“/*[@id=“dp”]/*[@id=“productTitle”]/text()”无效。但在google chrome中,这两种浏览器都能工作,并且都能获得相同位置的相同项目。一些网站在加载某些内容时使用javascript。值得保存您在DOMDocument中使用的
$html
,看看它是否与在线版本具有相同的结构。情况并非如此,好像我使用“/*[@id=“productTitle”]/text()”有效,但如果我使用“/*[@id=“dp”]/*[@id=“productTitle”]/text()”无效。但在谷歌chrome中,两者都可以使用,而且都可以在同一个地方获得相同的项目