使用DOMXPath获取标题之间的链接

时间:2012-11-19 03:58:06

标签: php parsing domxpath

我有一个没有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并做了一些事情。可以有任意数量的链接和任意数量的标题。

任何人都有任何提示或可能是如何做到这一点的例子?

1 个答案:

答案 0 :(得分:0)

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

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

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