diff options
author | Christian Stocker <chregu@php.net> | 2004-05-10 13:31:14 +0000 |
---|---|---|
committer | Christian Stocker <chregu@php.net> | 2004-05-10 13:31:14 +0000 |
commit | 33cd5e9b43c2eef8a83ad1ff20e4bca5989b7c34 (patch) | |
tree | f17e9e3a25f0c97b77b9a2561a1bc552af18c731 /ext/xmlreader/php_xmlreader.c | |
parent | 2224276a1303822e098c1e8ffc2ce141a8e709ea (diff) | |
download | php-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.c | 33 |
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} }; |