【问题标题】:XPath works in Chrome Inspect but not on PHPXPath 适用于 Chrome Inspect 但不适用于 PHP
【发布时间】:2017-08-09 02:07:30
【问题描述】:

我正在尝试在 XPath 中使用 OR 运算符,它适用于 Chrome Inspect。但这使它无法在 PHP 上运行。最初没有 OR 运算符的 XPath 在 PHP 中运行良好。

这是最初的 XPath:

//h4[text()="Description"]/following-sibling::*[not(@class)][not(@style)]

这是修改后的 XPath

//h4[text()="Description"]/following-sibling::*[not(@class)|@class="MsoNormal"][not(@style)]

抱歉,由于工作披露,我无法提及链接。

修改 XPath 后,我从 PHP 脚本中得到了这个错误:

Warning: DOMXPath::query(): Invalid type in D:\xampp\htdocs\PHP projects\<project_name>\<project_name>\lib\custom\class_ff_parser.php on line 660

Warning: DOMXPath::query(): Invalid expression in D:\xampp\htdocs\PHP projects\<project_name>\<project_name>\lib\custom\class_ff_parser.php on line 660

【问题讨论】:

  • 请提供一个 XML 的小例子和你的代码,可以用来重现问题。

标签: php google-chrome xpath web-scraping screen-scraping


【解决方案1】:

我打算发表评论,但我的声誉太低了。

而不是使用“|”作为您的 OR 运算符,也许使用“或”这个词。可能是您的 php 脚本可能无法解析“|”字符。

所以:

//h4[text()="Description"]/following-sibling::*[not(@class) or @class="MsoNormal"][not(@style)]

如果我们能在导致您的问题的行上看到代码,那将非常有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-14
    • 1970-01-01
    • 1970-01-01
    • 2015-04-14
    • 1970-01-01
    • 1970-01-01
    • 2013-11-10
    相关资源
    最近更新 更多