使用查询函数在PHP DOMXPath中搜索XPath
我有一个DOMXPath对象,是我从一个DOMDocument创建的,这是一个amazon网站: 我正在尝试使用一些在我的Google Chrome上工作的XPath,但是当我在DOMXPath上尝试它们时,它们似乎不起作用 以下是一个例子:使用查询函数在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);
$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中,两者都可以使用,而且都可以在同一个地方获得相同的项目