- Fix issue with entities in attributes
authorMarcus Boerger <helly@php.net>
Sun, 23 Oct 2005 23:41:20 +0000 (23:41 +0000)
committerMarcus Boerger <helly@php.net>
Sun, 23 Oct 2005 23:41:20 +0000 (23:41 +0000)
ext/simplexml/simplexml.c
ext/simplexml/tests/023.phpt

index c0d52144e7f57752e0d3bddda85b03e146099200..980c33da50f5a70c27d590559250061a1eb96a58 100644 (file)
@@ -701,7 +701,14 @@ sxe_properties_get(zval *object TSRMLS_DC)
        node = php_sxe_get_first_node(sxe, node TSRMLS_CC);
 
        if (node) {
-               node = node->children;
+               if (node->type == XML_ATTRIBUTE_NODE) {
+                       MAKE_STD_ZVAL(value);
+                       ZVAL_U_STRING(ZEND_U_CONVERTER(UG(runtime_encoding_conv)), value, xmlNodeListGetString(node->doc, node->children, 1), 1);
+                       zend_hash_next_index_insert(rv, &value, sizeof(zval *), NULL);
+                       node = NULL;
+               } else {
+                       node = node->children;
+               }
 
                while (node) {
                        if (node->children != NULL || node->prev != NULL || node->next != NULL) {
index 1e919ae5640d9f03bf11d87b19c97c4d8439feea..dd6dde59d78a57368e93956056ebcac01a71e87d 100755 (executable)
@@ -22,11 +22,9 @@ var_dump($sxe['attr']);
 ?>
 ===DONE===
 --EXPECTF--
-object(SimpleXMLElement)#1 (1) {
-  ["attr"]=>
-  string(%d) "foo%sbar%sbaz"
+object(SimpleXMLElement)#%d (0) {
 }
-object(SimpleXMLElement)#2 (1) {
+object(SimpleXMLElement)#%d (1) {
   [0]=>
   string(%d) "foo%sbar%sbaz"
 }