Querylist匹配多个结果的问题

发布于 2022-09-06 01:02:34 字数 875 浏览 19 评论 0

直接上测试代码,相同选择器,遇见多个匹配,返回结果没有被分配到一个数组键里,而是分开的。

html:

<div class="div1">1a</div>
<div class="div2">
    <span class="span">2a</span>
    <span class="span">2b</span>
    <span class="span">2c</span>
</div>

php:

$rules = [
    'div1' => ['.div1', 'text'],
    'div2' => ['.div2 .span', 'text'],
];

$data = QueryList::Query($link, $rules)->getData();
print_r($data);

错误result:

[
    0 => [
        'div1' => '1a',
        'div2' => '2a',
    ],
    1 => [
        'div2' => '2b',
    ],
    2 => [
        'div2' => '2c',
    ],
]

期望result:

[
    0 => [
        'div1' => '1a',
        'div2' => [
            '2a', '2b', '2c',
        ],
    ],
]

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

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

发布评论

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

评论(1

下雨或天晴 2022-09-13 01:02:34

这种情况需要用到递归多级采集,查看文档:http://v3.querylist.cc/site/index/doc/25

例子:

//获取每个li里面的h3标签内容,和class为item的元素内容
$html =<<<STR
    <div id="demo">
        <ul>
            <li>
              <h3>xxx</h3>
              <div class="list">
                <div class="item">item1</div>
                <div class="item">item2</div>
              </div>
            </li>
             <li>
              <h3>xxx2</h3>
              <div class="list">
                <div class="item">item12</div>
                <div class="item">item22</div>
              </div>
            </li>
        </ul>
    </div>
STR;
$data = QueryList::Query($html,array(
        'title' => array('h3','text'),
        'list' => array('.list','html')
    ),'#demo li')->getData(function($item){
    $item['list'] = QueryList::Query($item['list'],array(
             'item' => array('.item','text')
        ))->data;
    return $item;
});
print_r($data);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文