【问题标题】:Get links between headings with DOMXPath使用 DOMXPath 获取标题之间的链接
【发布时间】:2012-11-19 03:58:06
【问题描述】:

我有一个没有 id 或类的 html 网站,只有一些像这样的链接和标题

<h1>Link category 1</h1>
<a href="somesite">Somename 1</a>
<a href="somesite">Somename 2</a>
<a href="somesite">Somename 3</a>
<a href="somesite">Somename 4</a>
<h1>Link category 2</h1>
<a href="somesite">Somename 5</a>
<a href="somesite">Somename 6</a>
<a href="somesite">Somename 7</a>
<a href="somesite">Somename 8</a>

等等

目前我正在使用此代码解析页面上的所有链接

$dom = new DOMDocument();
@$dom->loadHTML($content);
$xPath = new DOMXPath($dom);
$elements = $xPath->query("//a");

这样我可以从所有链接中获取文本,但我想要做的是将它分开,以便我首先获取第一个 h1 之后的所有链接并用它做一些事情,然后我得到之后的所有链接第二个 h1 并用它做点什么。可以有任意数量的链接和任意数量的标题。

任何人有任何提示或可能的例子来说明如何做到这一点?

【问题讨论】:

    标签: php parsing domxpath


    【解决方案1】:

    在我的情况下,我总是知道标题是什么,它们与标题文本相同的可能性很小,所以我能够使用它

    $xPath->query("//a | //h1");
    

    获取所有和元素,然后在检测到新标题时使用 if 语句更改 mysql 插入查询。

    【讨论】:

      猜你喜欢
      • 2016-02-20
      • 2017-08-04
      • 2011-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-20
      相关资源
      最近更新 更多