DOM查询如何获得第一级匹配?

DOM查询如何获得第一级匹配?,dom,zend-framework2,zend-dom-query,Dom,Zend Framework2,Zend Dom Query,我需要参加所有一级深度的比赛 它显示了所有包含类accordion+所有子匹配的匹配 $dom = new Query($html); $results = $dom->execute('.accordion'); 我在课堂上得到了所有6个节点。手风琴 Html 测试1 测试2 测试3 名称 姓名2 名字3 如何在没有child的情况下只获取第一级DOM对象集(节点列表)? 应该是 第一个对象 <div class="accordion"> Name

我需要参加所有一级深度的比赛

它显示了所有包含类accordion+所有子匹配的匹配

$dom = new Query($html);
$results = $dom->execute('.accordion');
我在课堂上得到了所有6个节点。手风琴

Html


测试1
测试2
测试3
名称
姓名2
名字3
如何在没有child的情况下只获取第一级DOM对象集(节点列表)?
应该是
第一个对象

<div class="accordion">
    Name
    <div class="accordion">
      Name2
        <div class="accordion">
            Name3
        </div>
    </div>
</div>
<div class="accordion">
    Name
    <div class="accordion">
      Name2
        <div class="accordion">
            Name3
        </div>
    </div>
</div>

名称
姓名2
名字3
第二个对象

<div class="accordion">
    Name
    <div class="accordion">
      Name2
        <div class="accordion">
            Name3
        </div>
    </div>
</div>
<div class="accordion">
    Name
    <div class="accordion">
      Name2
        <div class="accordion">
            Name3
        </div>
    </div>
</div>

名称
姓名2
名字3

谢谢

我已经测试了一些代码

    $html = '
        <div class="container">
           <div class="accordion">
            Test1
            <div class="accordion">
              Test2
                <div class="accordion">
                    Test3
                </div>
            </div>
        </div>
        <div class="accordion">
            Name
            <div class="accordion">
              Name2
                <div class="accordion">
                    Name3
                </div>
            </div>
        </div>
     </div>
    ';

   $dom = new \Zend\Dom\Query($html);
   // Will returns the first levels .accordion in .container ($results length is 2)
   $results = $dom->queryXpath('//div[@class="container"]/div[@class="accordion"]');
   echo '<pre>';
   foreach($results as $result){
       print_r($result);
   }
   exit;

你试过使用Xpath表示法而不是执行方法吗?我使用了表示法..它仍然是一样的//div[contains(concat(“”,normalize space(@class),“”),'accordion group')][contains(concat(“”,normalize space(@class),“”),'exportable')]我又发布了一个问题,因为我还没有收到任何使用DOMXpath表示法的答案,所以我想您的div.accordio在一个特定的容器中。使用“container>.accordion”选择容器的直接子级。