Con lo de declaratividad me refiero a que esto:
Código PHP:
object(XML_Node)#66 (13) {
["_sName"]=>
string(6) "module"
["_sText"]=>
string(0) ""
["_aAttributes"]=>
array(0) {
}
["_oParentNode"]=>
object(XML_Node)#60 (13) {
["_sName"]=>
string(7) "modules"
["_sText"]=>
string(0) ""
["_aAttributes"]=>
array(0) {
}
["_oParentNode"]=>
&NULL
["_aChildNodes"]=>
array(2) {
[0]=>
&object(XML_Node)#61 (14) {
["_sName"]=>
string(6) "module"
["_sText"]=>
string(0) ""
["_aAttributes"]=>
array(0) {
}
["_oParentNode"]=>
object(XML_Node)#60 (13) {
["_sName"]=>
string(7) "modules"
["_sText"]=>
string(0) ""
["_aAttributes"]=>
array(0) {
}
["_oParentNode"]=>
&NULL
["_aChildNodes"]=>
array(2) {
[0]=>
&object(XML_Node)#61 (14) {
["_sName"]=>
string(6) "module"
["_sText"]=>
string(0) ""
["_aAttributes"]=>
array(0) {
}
["_oParentNode"]=>
*RECURSION*
["_aChildNodes"]=>
array(0) {
}
["_iChildCount"]=>
int(4)
["_aChildNameCount"]=>
array(0) {
}
["_iParentChildInd"]=>
int(0)
["_iNodeIndex"]=>
int(1)
["_iNodeDepth"]=>
int(1)
["_nodeAbsPath"]=>
string(21) "/modules[1]/module[1]"
["_bSaveAsCData"]=>
bool(false)
["name"]=>
array(1) {
}
["nameAlias"]=>
array(3) {
[1]=>
&object(XML_Node)#63 (12) {
...
}
[2]=>
&object(XML_Node)#64 (12) {
...
}
[3]=>
&object(XML_Node)#65 (12) {
...
}
}
}
seria algo como:
<module>
<nodoHijo1></nodoHijo1>
<nodoHijo2>
<acaHijoDeHijo>
</acaHijoDeHijo>
</nodoHijo2>
</module>
O sea.. los XML fueron creados para describir cosas :P. Y si los escribes como antes, ya no describen nada, realmente ni siquiera sabes que es un xml si no te fijas bien que hay un par de XML_NODE tirados por ahi...
Pero es solo una manía mia por que el código diga lo que hace XD, no es necesario.