Php xpath可以';t从表中提取数据

Php xpath可以';t从表中提取数据,php,html,xpath,Php,Html,Xpath,我编写以下xpath从表中提取名称和价格 /html/body/div[2]/div[7]/div[3]/table[1]/tbody/tr 但是它无法提取该页面的源HTML中没有tbody元素(打开源文档并搜索“tbody”,自己尝试一下) 不幸的是,浏览器(包括浏览器插件,n.b.)倾向于向DOM表示添加tbody元素,即使它们实际上并不存在 我不知道你想在那页上找到什么(你解释得不够清楚),但是如果你在搜索 //table/tbody/tr 这并没有返回任何结果,您应该尝试的第一件事

我编写以下xpath从表中提取名称和价格

/html/body/div[2]/div[7]/div[3]/table[1]/tbody/tr


但是它无法提取

该页面的源HTML中没有
tbody
元素(打开源文档并搜索“tbody”,自己尝试一下)

不幸的是,浏览器(包括浏览器插件,n.b.)倾向于向DOM表示添加
tbody
元素,即使它们实际上并不存在

我不知道你想在那页上找到什么(你解释得不够清楚),但是如果你在搜索

//table/tbody/tr
这并没有返回任何结果,您应该尝试的第一件事是

//table//tr
看看这有没有不同。如果没有,下一步要注意的是名称空间。用作输入()的文档是XHTML,它要求元素位于命名空间中:

<html lang="fa" xml:lang="fa" xmlns="http://www.w3.org/1999/xhtml">


根据您使用的XPath引擎(同样,我们也不知道),您需要使用前缀和前缀元素名称干净地注册名称空间。

您是否尝试扩大查询范围以查看可以获取什么?例如,
/html/body/div[2]
有什么帮助吗?如果是这样,那么
/html/body/div[2]/div[7]
呢?无论如何,这个查询都太容易被破坏——可能最好是针对一个具有
id
表?你用什么方法不能提取?我想我们需要在这里看到更多细节。我使用fire fox插件。现在我在chrome控制台中编写xpath….$x(//table[@class='items.\u table englishbold']/tbody/tr/td[@class='entry entryltr']/a/text()”)。。。并获取数组[546]@Mathias Müller@Mortzea那又怎么样?这和你期望的不同吗?你到底想找到什么?当您在web控制台中实际应用XPath表达式时,为什么让它看起来像是在使用PHP?(不要在评论中回答这些问题,编辑您的问题以包含此信息。)