web/lib/Zend/Dom/Query/Result.php
changeset 64 162c1de6545a
parent 19 1c2f13fd785c
child 68 ecaf28ffe26e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/lib/Zend/Dom/Query/Result.php	Fri Mar 11 15:05:35 2011 +0100
@@ -0,0 +1,183 @@
+<?php
+/**
+ * Zend Framework
+ *
+ * LICENSE
+ *
+ * This source file is subject to the new BSD license that is bundled
+ * with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://framework.zend.com/license/new-bsd
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@zend.com so we can send you a copy immediately.
+ *
+ * @category   Zend
+ * @package    Zend_Dom
+ * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
+ * @license    http://framework.zend.com/license/new-bsd     New BSD License
+ */
+
+/**
+ * Results for DOM XPath query
+ *
+ * @package    Zend_Dom
+ * @subpackage Query
+ * @uses       Iterator
+ * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
+ * @license    http://framework.zend.com/license/new-bsd     New BSD License
+ * @version    $Id: Result.php 20096 2010-01-06 02:05:09Z bkarwin $
+ */
+class Zend_Dom_Query_Result implements Iterator,Countable
+{
+    /**
+     * Number of results
+     * @var int
+     */
+    protected $_count;
+
+    /**
+     * CSS Selector query
+     * @var string
+     */
+    protected $_cssQuery;
+
+    /**
+     * @var DOMDocument
+     */
+    protected $_document;
+
+    /**
+     * @var DOMNodeList
+     */
+    protected $_nodeList;
+
+    /**
+     * Current iterator position
+     * @var int
+     */
+    protected $_position = 0;
+
+    /**
+     * @var DOMXPath
+     */
+    protected $_xpath;
+
+    /**
+     * XPath query
+     * @var string
+     */
+    protected $_xpathQuery;
+
+    /**
+     * Constructor
+     *
+     * @param  string $cssQuery
+     * @param  string|array $xpathQuery
+     * @param  DOMDocument $document
+     * @param  DOMNodeList $nodeList
+     * @return void
+     */
+    public function  __construct($cssQuery, $xpathQuery, DOMDocument $document, DOMNodeList $nodeList)
+    {
+        $this->_cssQuery   = $cssQuery;
+        $this->_xpathQuery = $xpathQuery;
+        $this->_document   = $document;
+        $this->_nodeList   = $nodeList;
+    }
+
+    /**
+     * Retrieve CSS Query
+     *
+     * @return string
+     */
+    public function getCssQuery()
+    {
+        return $this->_cssQuery;
+    }
+
+    /**
+     * Retrieve XPath query
+     *
+     * @return string
+     */
+    public function getXpathQuery()
+    {
+        return $this->_xpathQuery;
+    }
+
+    /**
+     * Retrieve DOMDocument
+     *
+     * @return DOMDocument
+     */
+    public function getDocument()
+    {
+        return $this->_document;
+    }
+
+    /**
+     * Iterator: rewind to first element
+     *
+     * @return void
+     */
+    public function rewind()
+    {
+        $this->_position = 0;
+        return $this->_nodeList->item(0);
+    }
+
+    /**
+     * Iterator: is current position valid?
+     *
+     * @return bool
+     */
+    public function valid()
+    {
+        if (in_array($this->_position, range(0, $this->_nodeList->length - 1)) && $this->_nodeList->length > 0) {
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * Iterator: return current element
+     *
+     * @return DOMElement
+     */
+    public function current()
+    {
+        return $this->_nodeList->item($this->_position);
+    }
+
+    /**
+     * Iterator: return key of current element
+     *
+     * @return int
+     */
+    public function key()
+    {
+        return $this->_position;
+    }
+
+    /**
+     * Iterator: move to next element
+     *
+     * @return void
+     */
+    public function next()
+    {
+        ++$this->_position;
+        return $this->_nodeList->item($this->_position);
+    }
+
+    /**
+     * Countable: get count
+     *
+     * @return int
+     */
+    public function count()
+    {
+        return $this->_nodeList->length;
+    }
+}