1

我正在使用 PHP 和 QueryPath 库从一些旧的 HTML 文件中提取数据。当我需要的元素具有唯一的 css3 ID 或类时,提取很容易,但情况并非总是如此。我有一些文件包含以下类型的数据:

<div id="dataDiv">
<div class="1">Heading1</div><div class="2" title="">Data1</div>
<div class="1">Heading2</div><div class="2" title="">Data2</div>
</div>

我想使用 QueryPath 搜索包含特定文本字符串(例如“Heading2”)的“1”类的 DIV,然后直接在它旁边检索 2 类的兄弟 div 中的任何文本。(在这种情况下,它将检索“Data2”)。

QueryPath 中是否有内置功能允许我根据元素包含的文本导航到元素?如果是这样,一旦我找到该元素,我怎样才能获得其下一个兄弟元素的内容文本?

4

2 回答 2

1

我的自然想法是not()函数。一个例子 :

$qp2 = qp($tb)->find('table tr')->not('table tr table tr'); 
于 2011-12-08T21:48:01.533 回答
0

在 CSS 3 中使用兄弟运算符:

qp($html, 'div.1:contains("Heading1") + div.2')->text();

上面得到<div class="1">谁的标题是Heading1,然后得到相邻的兄弟的类是2

于 2012-05-23T02:43:29.893 回答