Re: [PHP-XML-DEV] DomXPath extension

[email protected] (Jason Barnett) Fri, 23 Jul 2004 22:18:57 -0400
Newsgroups php.xml.dev
Message-ID <[email protected]>
> 
> This is the PHP 5 DOMXPath class? It just passes XPath queries to
> libxml2, so it should support everything you want. What specifically
> are you missing?
> 
> -adam
> 

Yes, I mean PHP5 DOMXPath.  OK, here's a sample script:
<?php

$xml = <<<XML
<music>
   <artist id="1">
     <name>The Rolling Stones</name>
     <albums>
       <title>Exile On Main Street</title>
     </albums>
   </artist>
   <artist id="2">
     <name>Aimee Mann</name>
     <albums>
       <title>I'm With Stupid</title>
       <title>Bachelor No. 2</title>
     </albums>
   </artist>
</music>
XML;

$dom = new DomDocument();
$dom->loadXML($xml);
$xpath = new DomXpath($dom);
var_dump($xpath->query("count(//music/artist)"));

?>

Result of the var_dump (php5.0.0):
object(DOMNodeList)#3 (0) { }

I expected to get a number (2), but Chrisitan told me before that right now 
query will only return DOMNodeList's.  A workaround is to query for the nodes 
(//music/artist) and then use PHP's count() function, but I was wondering when 
query will actually return a number instead of a nodelist.