在 PHP 中使用 QueryPath 从 HTML 同级元素中检索文本

发布于 2024-10-27 02:30:21 字数 536 浏览 1 评论 0原文

我正在使用 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 中是否有内置功能允许我根据元素包含的文本导航到该元素?如果是这样,一旦我找到该元素,如何获取其下一个同级元素的内容文本?

I'm extracting data from some old HTML files using PHP and the QueryPath library. Extraction is easy when the element I need has a unique css3 ID or class, but this isn't always the case. I have some files containing the following type of data:

<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>

I would like to use QueryPath to search for a DIV of class "1" containing a certain string of text ("Heading2", for example), and then retrieve any text in the sibling div of class 2 directly next to it. (It would retrieve "Data2" in this case).

Is there built in functionality in QueryPath that allows me to navigate to an element based on the text it contains? If so, once I locate that element, how can I then get the content text of its next sibling element?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

苄①跕圉湢 2024-11-03 02:30:21

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

$qp2 = qp($tb)->find('table tr')->not('table tr table tr'); 

My natural idea is to is the not() function. An example :

$qp2 = qp($tb)->find('table tr')->not('table tr table tr'); 
稀香 2024-11-03 02:30:21

在 CSS 3 中使用同级运算符:

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

上面获取标题为 Heading1

,然后获取类为 的相邻同级>2

Use the sibling operator in CSS 3:

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

The above gets <div class="1"> whose heading is Heading1, then gets the adjacent sibling whose class is 2.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文