cvs: /php4/ext/domxml domxml.c /php4/tests testdom

From: Date: Wed, 01 Mar 2000 21:16:54 +0000
Subject: cvs: /php4/ext/domxml domxml.c /php4/tests testdom
Groups: php.version4 
Request: Send a blank email to php-version4+get-11293@lists.php.net to get a copy of this message
steinm Wed Mar 1 13:16:54 2000 EDT Modified files: /php4/ext/domxml domxml.c /php4/tests testdom Log: - started to implement overload class for xml node Index: php4/ext/domxml/domxml.c diff -u php4/ext/domxml/domxml.c:1.20 php4/ext/domxml/domxml.c:1.21 --- php4/ext/domxml/domxml.c:1.20 Fri Feb 25 00:54:12 2000 +++ php4/ext/domxml/domxml.c Wed Mar 1 13:16:24 2000 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: domxml.c,v 1.20 2000/02/25 08:54:12 eschmid Exp $ */ +/* $Id: domxml.c,v 1.21 2000/03/01 21:16:24 steinm Exp $ */ #include "php.h" @@ -143,6 +143,132 @@ REGISTER_LONG_CONSTANT("XML_LOCAL_NAMESPACE", XML_LOCAL_NAMESPACE, CONST_CS | CONST_PERSISTENT); return SUCCESS; } + +#ifdef 0 +/* {{{ Node Class */ +pval domxmlnode_class_get_property(zend_property_reference *property_reference) +{ + pval result; + zend_overloaded_element *overloaded_property; + zend_llist_element *element; + + + printf("Reading a property from a OverloadedTestClass object:\n"); + + for (element=property_reference->elements_list.head; element; element=element->next) { + overloaded_property = (zend_overloaded_element *) element->data; + switch (overloaded_property->type) { + case OE_IS_ARRAY: + printf("Array offset: "); + break; + case OE_IS_OBJECT: + printf("Object property: "); + break; + } + switch (overloaded_property->element.type) { + case IS_LONG: + printf("%ld (numeric)\n", overloaded_property->element.value.lval); + break; + case IS_STRING: + printf("'%s'\n", overloaded_property->element.value.str.val); + break; + } + pval_destructor(&overloaded_property->element); + } + + result.value.str.val = estrndup("testing", 7); + result.value.str.len = 7; + result.type = IS_STRING; + return result; +} + + +int domxmlnode_class_set_property(zend_property_reference *property_reference, pval *value) +{ + zend_overloaded_element *overloaded_property; + zend_llist_element *element; + + printf("Writing to a property from a OverloadedTestClass object:\n"); + printf("Writing '"); + zend_print_variable(value); + printf("'\n"); + + for (element=property_reference->elements_list.head; element; element=element->next) { + overloaded_property = (zend_overloaded_element *) element->data; + switch (overloaded_property->type) { + case OE_IS_ARRAY: + printf("Array offset: "); + break; + case OE_IS_OBJECT: + printf("Object property: "); + break; + } + switch (overloaded_property->element.type) { + case IS_LONG: + printf("%ld (numeric)\n", overloaded_property->element.value.lval); + break; + case IS_STRING: + printf("'%s'\n", overloaded_property->element.value.str.val); + break; + } + pval_destructor(&overloaded_property->element); + } + + return 0; +} + +void domxmlnode_class_call_function(INTERNAL_FUNCTION_PARAMETERS, zend_property_reference *property_reference) +{ + zend_overloaded_element *overloaded_property; + zend_llist_element *element; + + + printf("Invoking a method on OverloadedTestClass object:\n"); + + for (element=property_reference->elements_list.head; element; element=element->next) { + overloaded_property = (zend_overloaded_element *) element->data; + switch (overloaded_property->type) { + case OE_IS_ARRAY: + printf("Array offset: "); + break; + case OE_IS_OBJECT: + printf("Object property: "); + break; + case OE_IS_METHOD: + printf("Overloaded method: "); + } + switch (overloaded_property->element.type) { + case IS_LONG: + printf("%ld (numeric)\n", overloaded_property->element.value.lval); + break; + case IS_STRING: + printf("'%s'\n", overloaded_property->element.value.str.val); + break; + } + pval_destructor(&overloaded_property->element); + } + + printf("%d arguments\n", ARG_COUNT(ht)); + return_value->value.str.val = estrndup("testing", 7); + return_value->value.str.len = 7; + return_value->type = IS_STRING; +} + + +void domxmlnode_class_startup() +{ + zend_class_entry domxmlnode_class_entry; + + INIT_OVERLOADED_CLASS_ENTRY(dcomxmlnode_class_entry, "Dom Node", + php_domxmlnode_class_functions, + domxmlnode_class_call_function, + domxmlnode_class_get_property, + domxmlnode_class_set_property); + + register_internal_class(&domxmlnode_class_entry); +} +/* }}} */ +#endif PHP_MINFO_FUNCTION(domxml) { Index: php4/tests/testdom diff -u php4/tests/testdom:1.11 php4/tests/testdom:1.12 --- php4/tests/testdom:1.11 Tue Feb 22 09:03:36 2000 +++ php4/tests/testdom Wed Mar 1 13:16:24 2000 @@ -46,6 +46,7 @@ <!DOCTYPE chapter SYSTEM '/share/sgml/Norman_Walsh/db3xml10/db3xml10.dtd' [ <!ENTITY sp \"spanish\"> ]> +<!-- lsfj --> <chapter language='en'><title language='en'>Title</title> <para language='ge'> &sp; @@ -66,7 +67,10 @@ by using the methods of the xmlnode object */ echo "Test 1: accessing single nodes from php\n"; -$dom = xmldoc($xmlstr); +if(!$dom = xmldoc($xmlstr)) { + echo "Error while parsing the document\n"; + exit; +} echo "XML Version: ".$dom->version."\n"; $dtd = $dom->dtd(); $rootnode = $dom->root(); @@ -75,6 +79,7 @@ /* This one creates a dom tree made of php objects */ echo "Test 2: creating a tree with php objects\n"; $dom = xmltree($xmlstr); +$dom->root->name = "section"; var_dump($dom); echo $dom->root->name; echo "\n";

« previous php.version4 (#11293) next »