【问题标题】:Finding number of nodes in PHP, DOM, XPath查找 PHP、DOM、XPath 中的节点数
【发布时间】:2010-11-10 10:08:57
【问题描述】:

我正在将 HTML 加载到 DOM 中,然后使用 PHP 中的 XPath 对其进行查询。我目前的问题是如何找出已经进行了多少匹配,一旦确定,我该如何访问它们?

我目前有这个肮脏的解决方案:

$i = 0;  
foreach($nodes as $node) {  
    echo $dom->savexml($nodes->item($i));  
    $i++;
}

有没有更简洁的方法来查找节点数,我试过count(),但是不行。

【问题讨论】:

    标签: php dom xpath


    【解决方案1】:

    您还没有发布任何与$nodes 相关的代码,所以我假设您正在使用 DOMXPath 和 query(),或者至少,您有一个 DOMNodeList
    DOMXPath::query() 返回一个 DOMNodeList,它有一个长度成员。您可以通过(给定您的代码)访问它:

    $nodes->length
    

    【讨论】:

      【解决方案2】:

      如果只想知道计数,也可以使用DOMXPath::evaluate

      PHP 手册中的示例:

      $doc = new DOMDocument;
      $doc->load('book.xml');
      $xpath = new DOMXPath($doc);
      $tbody = $doc->getElementsByTagName('tbody')->item(0);
      
      // our query is relative to the tbody node
      $query = 'count(row/entry[. = "en"])';
      $entries = $xpath->evaluate($query, $tbody);
      echo "There are $entries english books\n";
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-02-28
        • 1970-01-01
        • 1970-01-01
        • 2019-04-11
        • 1970-01-01
        • 2013-02-06
        • 2013-03-11
        • 1970-01-01
        相关资源
        最近更新 更多