Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.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 Xpath查询赢得';行不通_Php_Xpath - Fatal编程技术网

Php Xpath查询赢得';行不通

Php Xpath查询赢得';行不通,php,xpath,Php,Xpath,我一直在玩cURL和xpath的一些网站垃圾。我终于让我的代码按我想要的方式运行,但在另一侧尝试后,它停止了。我唯一更改的是路径和url。我是新来的,只做了一个星期。因此,如果这是一个明显的失败,请容忍我 我的代码是: 我想到了几件事。你检查过传入的html是什么样子的吗?它是否有不属于那里的内容?您要查找的xpath是否正确?至少在这个较旧的答案中,xpath的范围似乎应该以形式给出 [position()>=100和not(position()>200)] 编辑:现在我想起来了,如果实际

我一直在玩cURL和xpath的一些网站垃圾。我终于让我的代码按我想要的方式运行,但在另一侧尝试后,它停止了。我唯一更改的是路径和url。我是新来的,只做了一个星期。因此,如果这是一个明显的失败,请容忍我

我的代码是:


我想到了几件事。你检查过传入的html是什么样子的吗?它是否有不属于那里的内容?您要查找的xpath是否正确?至少在这个较旧的答案中,xpath的范围似乎应该以形式给出

[position()>=100和not(position()>200)]


编辑:现在我想起来了,如果实际html中的项目少于所需的数量,可能xpath会将范围表达式计算为false,因此在查询中找不到任何项目?

我解决了我的问题,即路径。firebug给我的路径不适合该站点。为什么我不知道。

你说它停止了,这是否意味着脚本超时、没有返回内容、出现错误……等等?很抱歉没有提供这些信息。脚本未超时或返回错误。显示的唯一内容是“Array()”您所说的“更改路径和url”是什么意思?你把它改成了什么?您拥有的xpath仅对代码中的url有效……是的,我知道,也知道为什么我同时更改了url和xpath。它使用不同的url和相应的xpath在另一端工作。我在另一个站点上执行了相同的过程,因此一定是我做错了什么。如果将url更改为:并且将xpath更改为
/html/body/div[1]/div[2]/div[1]/div[2]/div[1]/div[4]/div[2]/div[3]/table/tbody/tr[position()>=1和position()我曾在firefox中使用firebug直接从浏览器复制xpath。因此我不知道我是否会弄错?我尝试使用您对xpath的建议,但也不起作用。我仍然认为它与我的建议相同,但不确定:)我尝试了不同类型的xpath,我使用了一个直接指向一个项目的路径,而不是范围d它仍然不起作用。我尝试了你的代码,但它似乎无法解析它接收到的html。$html变量会被某种html(或至少是看起来像html的数据)填充,但当你尝试用$dom->loadHTML($html)加载它时,则$dom将无法成功解析它。我认为您的原始代码和xpath查询是正确的,但问题出在您尝试解析的网页上。可能Firefox/Firebug会动态修复html,因此您在使用Firefox时可以获得正确的xpath。好的,这听起来可能是问题所在。我该如何解决这个问题让我将正确的html代码输入到变量中?我没有经常这样做,事实上,解析html对我来说也是非常罕见的情况。:)我发现的链接似乎表明loadHtml()应该也接受无效的html,但可能它需要一些额外的开关打开或关闭…也许使用将帮助您找到问题。以下是一些可能有用的其他链接:和