php-src/ext/simplexml
Peter Kokot f1d7e3ca0b Sync leading and final newlines in *.phpt sections
This patch adds missing newlines, trims multiple redundant final
newlines into a single one, and trims redundant leading newlines in all
*.phpt sections.

According to POSIX, a line is a sequence of zero or more non-' <newline>'
characters plus a terminating '<newline>' character. [1] Files should
normally have at least one final newline character.

C89 [2] and later standards [3] mention a final newline:
"A source file that is not empty shall end in a new-line character,
which shall not be immediately preceded by a backslash character."

Although it is not mandatory for all files to have a final newline
fixed, a more consistent and homogeneous approach brings less of commit
differences issues and a better development experience in certain text
editors and IDEs.

[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206
[2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2
[3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
2018-10-15 04:31:31 +02:00
..
examples
tests Sync leading and final newlines in *.phpt sections 2018-10-15 04:31:31 +02:00
config.m4 Trim trailing whitespace in source code files 2018-10-13 14:14:50 +02:00
config.w32 improve searchability for libxml2 headers 2015-05-10 22:22:03 +02:00
CREDITS
php_simplexml_exports.h year++ 2018-01-02 12:55:14 +08:00
php_simplexml.h year++ 2018-01-02 12:55:14 +08:00
README Trim trailing whitespace in source code files 2018-10-13 14:14:50 +02:00
simplexml.c year++ 2018-01-02 12:55:14 +08:00
sxe.c year++ 2018-01-02 12:55:14 +08:00
sxe.h year++ 2018-01-02 12:55:14 +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.