summaryrefslogtreecommitdiff
path: root/ext/xmlreader/php_xmlreader.c
diff options
context:
space:
mode:
authorChristian Stocker <chregu@php.net>2004-05-10 13:31:14 +0000
committerChristian Stocker <chregu@php.net>2004-05-10 13:31:14 +0000
commit33cd5e9b43c2eef8a83ad1ff20e4bca5989b7c34 (patch)
treef17e9e3a25f0c97b77b9a2561a1bc552af18c731 /ext/xmlreader/php_xmlreader.c
parent2224276a1303822e098c1e8ffc2ce141a8e709ea (diff)
downloadphp-git-33cd5e9b43c2eef8a83ad1ff20e4bca5989b7c34.tar.gz
- added expand support (see http://www.xmlsoft.org/xmlreader.html#Mixing for the details behind
that) CVS: ----------------------------------------------------------------------
Diffstat (limited to 'ext/xmlreader/php_xmlreader.c')
-rw-r--r--ext/xmlreader/php_xmlreader.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/ext/xmlreader/php_xmlreader.c b/ext/xmlreader/php_xmlreader.c
index 6b0d416d30..c9679a71a1 100644
--- a/ext/xmlreader/php_xmlreader.c
+++ b/ext/xmlreader/php_xmlreader.c
@@ -22,10 +22,12 @@
#include "config.h"
#endif
+
#include "php.h"
#include "php_ini.h"
#include "ext/standard/info.h"
#include "php_xmlreader.h"
+#include "ext/dom/xml_common.h"
#include <libxml/uri.h>
zend_class_entry *xmlreader_class_entry;
@@ -953,6 +955,36 @@ PHP_METHOD(xmlreader, XML)
}
/* }}} */
+/* {{{ proto boolean expand()
+Moves the position of the current instance to the next node in the stream. */
+PHP_METHOD(xmlreader, expand)
+{
+ zval *id, *rv = NULL;
+ int ret;
+ xmlreader_object *intern;
+ xmlNode *node, *nodec;
+
+ id = getThis();
+ intern = (xmlreader_object *)zend_object_store_get_object(id TSRMLS_CC);
+ //nodeobj = (php_libxml_node_object *) zend_object_store_get_object(id TSRMLS_CC);
+ if (intern && intern->ptr) {
+ node = xmlTextReaderExpand(intern->ptr);
+
+ if (node == NULL) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "An Error Occured while expanding ");
+ RETURN_FALSE;
+ } else {
+ nodec = xmlCopyNode(node, 1);
+ DOM_RET_OBJ(rv, nodec, &ret, NULL);
+ }
+ } else {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Load Data before trying to expand");
+ RETURN_FALSE;
+ }
+
+}
+/* }}} */
+
static zend_function_entry xmlreader_functions[] = {
PHP_ME(xmlreader, close, NULL, ZEND_ACC_PUBLIC)
PHP_ME(xmlreader, getAttribute, NULL, ZEND_ACC_PUBLIC)
@@ -979,6 +1011,7 @@ static zend_function_entry xmlreader_functions[] = {
PHP_ME(xmlreader, setRelaxNGSchema, NULL, ZEND_ACC_PUBLIC)
PHP_ME(xmlreader, setRelaxNGSchemaSource, NULL, ZEND_ACC_PUBLIC)
PHP_ME(xmlreader, XML, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_ALLOW_STATIC)
+ PHP_ME(xmlreader, expand, NULL, ZEND_ACC_PUBLIC)
{NULL, NULL, NULL}
};