DOM Query如何获得第一级匹配?

时间:2013-11-06 15:04:04

标签: dom zend-framework2 zend-dom-query

我需要在第一级深度上进行所有比赛 http://framework.zend.com/manual/2.0/en/modules/zend.dom.query.html

它显示了包含班级手风琴+所有儿童比赛的所有比赛

$dom = new Query($html);
$results = $dom->execute('.accordion');

我正在使用类.accordion

获得所有6个节点

HTML

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

如何在没有孩子的情况下仅使用DOM Objcets(Nodelist)的第一级?
它应该是
第一个对象

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

谢谢!

1 个答案:

答案 0 :(得分:2)

我已经测试了一些代码

    $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;
回声:

DOMElement Object
(
    [tagName] => div
    [schemaTypeInfo] => 
    [nodeName] => div
    [nodeValue] => 
                Test1

                  Test2

                        Test3



    [nodeType] => 1
    [parentNode] => (object value omitted)
    [childNodes] => (object value omitted)
    [firstChild] => (object value omitted)
    [lastChild] => (object value omitted)
    [previousSibling] => (object value omitted)
    [nextSibling] => (object value omitted)
    [attributes] => (object value omitted)
    [ownerDocument] => (object value omitted)
    [namespaceURI] => 
    [prefix] => 
    [localName] => div
    [baseURI] => 
    [textContent] => 
                Test1

                  Test2

                        Test3



)

DOMElement Object
(
    [tagName] => div
    [schemaTypeInfo] => 
    [nodeName] => div
    [nodeValue] => 
                Name

                  Name2

                        Name3



    [nodeType] => 1
    [parentNode] => (object value omitted)
    [childNodes] => (object value omitted)
    [firstChild] => (object value omitted)
    [lastChild] => (object value omitted)
    [previousSibling] => (object value omitted)
    [nextSibling] => (object value omitted)
    [attributes] => (object value omitted)
    [ownerDocument] => (object value omitted)
    [namespaceURI] => 
    [prefix] => 
    [localName] => div
    [baseURI] => 
    [textContent] => 
                Name

                  Name2

                        Name3



)