php-src/ext/simplexml
Dmitry Stogov 7fcd4064c0 Merge branch 'master' into phpng
* master: (41 commits)
  fix test - output can be chunked
  fix test
  fix test
  Fixed test for commit 997be125eb
  Add bug fix to NEWS
  Update UPGRADING according to bug fix
  fix test
  improve CURL tests to allow testing without separate server
  improve CURL tests to allow testing without separate server
  Fixed bug #67199	mb_regex_encoding mishmash
  Fix bug #67248 (imageaffinematrixget missing check of parameters)
  Fix bug #67247	spl_fixedarray_resize integer overflow
  fix news
  add tests stuff to README
  Updated NEWS
  Fix Linux specific fail in error traces (cherry-picked and fix for bug #67245) Linux apparently does not like memcpy in overlapping regions...
  - Fixed off-by-one in phar_build (patch by crrodriguez at opensuse dot org)
  - Move checking
  - Fixed missing NULL check in SimpleXMLElement::xpath()
  - Fixed missing NULL check
  ...

Conflicts:
	ext/bz2/bz2.c
	ext/gd/gd.c
	ext/mbstring/php_mbregex.c
	ext/session/tests/031.phpt
	ext/simplexml/simplexml.c
	ext/spl/spl_fixedarray.c
2014-05-13 15:24:40 +04:00
..
examples update the examples 2004-01-17 21:44:22 +00:00
tests - Fixed missing NULL check in SimpleXMLElement::xpath() 2014-05-10 11:53:40 -03:00
config.m4 Merge branch 'PHP-5.5' 2013-08-06 11:09:12 -07:00
config.w32 make simplexml headers available to the outta world 2013-07-29 22:18:55 +02:00
CREDITS Fix writing of SQLite and SimpleXMl extension and add Rob to the credits 2004-03-28 20:27:18 +00:00
php_simplexml_exports.h Refactor simpleXML (compilable, but incompleted) 2014-04-14 19:27:22 +08:00
php_simplexml.h Refactor simpleXML (compilable, but incompleted) 2014-04-14 19:27:22 +08:00
README - Fix typoes 2004-01-17 20:20:18 +00:00
simplexml.c Merge branch 'master' into phpng 2014-05-13 15:24:40 +04:00
simplexml.dsp revert change #298288: Remove old dsp/dsw/makefile files 2010-04-28 14:41:51 +00:00
sxe.c Make they are in the same style of Z_ISREF 2014-05-03 16:08:58 +08:00
sxe.h Bump year 2014-01-03 11:08:10 +08: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.