PHP DOM 属性通配符

标签 php dom web-scraping

我到处找这个,但没找到。我只是想使用通配符从 html 中选择元素。例如,对于我正在抓取的页面,此选择器在 Jquery 控制台中完美运行:

$("tr[id^='informal_']")

换句话说,获取 id 以“informal_”开头的所有行。我尝试过 xpath 但没有运气。 xpath 是 XML 独有的吗?无论如何,如果有人有任何解决方案,我将不胜感激。

编辑

我使用的xpath:

  $doc = new DOMDocument($html);
  $doc->strictErrorChecking = false;
  $xpath = new DOMXPath($doc);
  $table_rows = $xpath->query("//*tr[starts-with(@id, 'informal_')]");

解决方案 我决定选择:http://code.google.com/p/phpquery/

这是代码:

require('phpQuery/phpQuery.php');

    $doc = phpQuery::newDocumentHTML($html);;
    $table_rows = $doc->find("tbody tr[id^='informal_']");

最佳答案

相当于 jQuery 选择器

tr[id^='informal_']

在 XPath 中,是

//tr[starts-with(@id, 'informal_')]

您非常接近答案,只是 * 妨碍了您。

关于PHP DOM 属性通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12017167/

相关文章:

python - 蜘蛛没有抓取适量的元素

php - 如何在 PHP echo 函数中使用 javascript?

javascript - AngularJS - 我的指令下的 html 没有显示

html - 使用比元素尺寸大得多的 CSS border-radius

javascript - 如何通过 JavaScript 获取静态的、原始的 HTML 源代码?

python - 如何用 beautiful soup 来抓取没有 class 或 id 的元素

python - 如何使用请求库来网络抓取已抓取的链接列表

php - RegEx - 如何提取价格?

php - Codeigniter 3 - 连接不返回所有结果

php - eBay API PHP - 向客户发送消息