php-src/ext/simplexml
Nikita Popov b2b2b437af Add _IS_NUMBER as cast_object() target type
convert_scalar_to_number() will now call cast_object() with an
_IS_NUMBER argument, in which case the cast handler should return
either an integer or floating point number, whichever is more
appropriate.

Previously convert_scalar_to_number() unconditionally converted
objects to integers instead.

Fixes bug #53033.
Fixes bug #54973.
Fixes bug #73108.
2017-12-26 12:39:06 +01:00
..
tests Add _IS_NUMBER as cast_object() target type 2017-12-26 12:39:06 +01:00
config.m4 Merge branch 'PHP-5.5' 2013-08-06 11:09:12 -07:00
config.w32 improve searchability for libxml2 headers 2015-05-10 22:22:03 +02:00
CREDITS
php_simplexml_exports.h Update copyright headers to 2017 2017-01-04 11:23:42 -06:00
php_simplexml.h Update copyright headers to 2017 2017-01-04 11:23:42 -06:00
README
simplexml.c Add _IS_NUMBER as cast_object() target type 2017-12-26 12:39:06 +01:00
sxe.c "Countable" interface is moved from SPL to Core 2017-05-25 12:47:43 +03:00
sxe.h Update copyright headers to 2017 2017-01-04 11:23:42 -06:00

SimpleXML is meant to be an easy way to access XML data.

SimpleXML objects follow four basic rules:

1) properties denote element iterators
2) numeric indices denote elements
3) non numeric indices denote attributes
4) string conversion allows to access TEXT data

When iterating properties then the extension always iterates over
all nodes with that element name. Thus method children() must be 
called to iterate over subnodes. But also doing the following:
foreach ($obj->node_name as $elem) {
  // do something with $elem
}
always results in iteration of 'node_name' elements. So no further 
check is needed to distinguish the number of nodes of that type.

When an elements TEXT data is being accessed through a property
then the result does not include the TEXT data of subelements.

Known issues
============

Due to engine problems it is currently not possible to access
a subelement by index 0: $object->property[0].

TODO
====

At the moment property access to multiple elements of the same
name returns an array of SimpleXML objects. This should be an 
object of a new type instead so that all kinds of linkage,
assignment and deleting would work.