为什么php xpath不能在这个网站上运行?

时间:2015-08-10 18:51:04

标签: php xpath

我有这个简单的PHP代码打印出Agoda.com上特定页面上的所有链接。但是,由于某种原因,xpath没有检测到要查询的任何html。有谁知道为什么xpath不能在这个网站上工作以及我如何解决它?:

/etc/apache2/envvars

1 个答案:

答案 0 :(得分:0)

问题不在于XPath评估,而在于加载文档HTML。

Validating the agoda.com page会显示该页面包含字符:

  
      
  1. 错误:在流中看到U + 0000。
  2.         

    第99行,第1859行

         

    var whatImLookingFor = myDictionary.SelectMany(x => x.Value) .Where(y => y.myProperty == someCompareValue);

个字符可防止DomDocument正确加载HTML。除非您是该页面的所有者并且可以在源头修复该错误,否则您将不得不以某种方式自行处理此问题。

以下示例将在加载前删除HTML字符串中的所有字符:

693=B&1676=&1778=B&am
然后,XPath将按预期进行评估。