Browse Source
- Change var_dump to include all that is reachable, incl. @attributes
- Change var_dump to include all that is reachable, incl. @attributes
- Adapt tests and add new onemigration/RELEASE_1_0_0
25 changed files with 648 additions and 326 deletions
-
186ext/simplexml/simplexml.c
-
220ext/simplexml/tests/000.phpt
-
16ext/simplexml/tests/000.xml
-
68ext/simplexml/tests/001.phpt
-
68ext/simplexml/tests/002.phpt
-
80ext/simplexml/tests/003.phpt
-
93ext/simplexml/tests/004.phpt
-
2ext/simplexml/tests/005.phpt
-
2ext/simplexml/tests/006.phpt
-
53ext/simplexml/tests/007.phpt
-
2ext/simplexml/tests/008.phpt
-
2ext/simplexml/tests/009.phpt
-
63ext/simplexml/tests/010.phpt
-
2ext/simplexml/tests/011.phpt
-
2ext/simplexml/tests/012.phpt
-
2ext/simplexml/tests/013.phpt
-
2ext/simplexml/tests/019.phpt
-
2ext/simplexml/tests/020.phpt
-
2ext/simplexml/tests/021.phpt
-
40ext/simplexml/tests/022.phpt
-
7ext/simplexml/tests/023.phpt
-
2ext/simplexml/tests/bug27010.phpt
-
31ext/simplexml/tests/profile11.phpt
-
2ext/simplexml/tests/simplexml_import_dom.phpt
-
25ext/simplexml/tests/sxe.dtd
@ -0,0 +1,220 @@ |
|||
--TEST-- |
|||
SimpleXML: var_dump() |
|||
--SKIPIF-- |
|||
<?php if (!extension_loaded("simplexml")) print "skip"; ?> |
|||
--FILE-- |
|||
<?php |
|||
|
|||
$sxe = simplexml_load_file(dirname(__FILE__).'/000.xml'); |
|||
|
|||
function test($what) |
|||
{ |
|||
global $sxe; |
|||
echo "===$what\n"; |
|||
eval("var_dump(isset(\$$what));"); |
|||
eval("var_dump(\$$what);"); |
|||
} |
|||
|
|||
test('sxe'); |
|||
test('sxe->elem1'); |
|||
test('sxe->elem1[0]'); |
|||
test('sxe->elem1[0]->elem2'); |
|||
test('sxe->elem1[0]->elem2->bla'); |
|||
test('sxe->elem1[0]["attr1"]'); |
|||
test('sxe->elem1[0]->attr1'); |
|||
test('sxe->elem1[1]'); |
|||
test('sxe->elem1[2]'); |
|||
test('sxe->elem11'); |
|||
test('sxe->elem11->elem111'); |
|||
test('sxe->elem11->elem111->elem1111'); |
|||
test('sxe->elem22'); |
|||
test('sxe->elem22->elem222'); |
|||
test('sxe->elem22->attr22'); |
|||
test('sxe->elem22["attr22"]'); |
|||
|
|||
?> |
|||
===DONE=== |
|||
<?php exit(0); ?> |
|||
--EXPECTF-- |
|||
===sxe |
|||
bool(true) |
|||
object(SimpleXMLElement)#%d (3) { |
|||
["@attributes"]=> |
|||
array(1) { |
|||
["id"]=> |
|||
string(3) "123" |
|||
} |
|||
["elem1"]=> |
|||
array(2) { |
|||
[0]=> |
|||
string(36) "There is some text.Here is some more" |
|||
[1]=> |
|||
object(SimpleXMLElement)#%d (1) { |
|||
["@attributes"]=> |
|||
array(2) { |
|||
["attr1"]=> |
|||
string(2) "11" |
|||
["attr2"]=> |
|||
string(2) "12" |
|||
} |
|||
} |
|||
} |
|||
["elem11"]=> |
|||
object(SimpleXMLElement)#%d (1) { |
|||
["elem111"]=> |
|||
object(SimpleXMLElement)#%d (1) { |
|||
["elem1111"]=> |
|||
object(SimpleXMLElement)#%d (0) { |
|||
} |
|||
} |
|||
} |
|||
} |
|||
===sxe->elem1 |
|||
bool(true) |
|||
object(SimpleXMLElement)#%d (3) { |
|||
["@attributes"]=> |
|||
array(2) { |
|||
["attr1"]=> |
|||
string(5) "first" |
|||
["attr2"]=> |
|||
string(6) "second" |
|||
} |
|||
["comment"]=> |
|||
object(SimpleXMLElement)#%d (0) { |
|||
} |
|||
["elem2"]=> |
|||
object(SimpleXMLElement)#%d (2) { |
|||
["@attributes"]=> |
|||
array(2) { |
|||
["att25"]=> |
|||
string(2) "25" |
|||
["att42"]=> |
|||
string(2) "42" |
|||
} |
|||
["elem3"]=> |
|||
object(SimpleXMLElement)#%d (1) { |
|||
["elem4"]=> |
|||
object(SimpleXMLElement)#%d (1) { |
|||
["test"]=> |
|||
object(SimpleXMLElement)#%d (0) { |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
===sxe->elem1[0] |
|||
bool(true) |
|||
object(SimpleXMLElement)#%d (3) { |
|||
["@attributes"]=> |
|||
array(2) { |
|||
["attr1"]=> |
|||
string(5) "first" |
|||
["attr2"]=> |
|||
string(6) "second" |
|||
} |
|||
["comment"]=> |
|||
object(SimpleXMLElement)#%d (0) { |
|||
} |
|||
["elem2"]=> |
|||
object(SimpleXMLElement)#%d (2) { |
|||
["@attributes"]=> |
|||
array(2) { |
|||
["att25"]=> |
|||
string(2) "25" |
|||
["att42"]=> |
|||
string(2) "42" |
|||
} |
|||
["elem3"]=> |
|||
object(SimpleXMLElement)#%d (1) { |
|||
["elem4"]=> |
|||
object(SimpleXMLElement)#%d (1) { |
|||
["test"]=> |
|||
object(SimpleXMLElement)#%d (0) { |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
===sxe->elem1[0]->elem2 |
|||
bool(true) |
|||
object(SimpleXMLElement)#%d (2) { |
|||
["@attributes"]=> |
|||
array(2) { |
|||
["att25"]=> |
|||
string(2) "25" |
|||
["att42"]=> |
|||
string(2) "42" |
|||
} |
|||
["elem3"]=> |
|||
object(SimpleXMLElement)#%d (1) { |
|||
["elem4"]=> |
|||
object(SimpleXMLElement)#%d (1) { |
|||
["test"]=> |
|||
object(SimpleXMLElement)#%d (0) { |
|||
} |
|||
} |
|||
} |
|||
} |
|||
===sxe->elem1[0]->elem2->bla |
|||
bool(false) |
|||
object(SimpleXMLElement)#%d (0) { |
|||
} |
|||
===sxe->elem1[0]["attr1"] |
|||
bool(true) |
|||
object(SimpleXMLElement)#%d (1) { |
|||
[0]=> |
|||
string(5) "first" |
|||
} |
|||
===sxe->elem1[0]->attr1 |
|||
bool(false) |
|||
object(SimpleXMLElement)#%d (0) { |
|||
} |
|||
===sxe->elem1[1] |
|||
bool(true) |
|||
object(SimpleXMLElement)#%d (1) { |
|||
["@attributes"]=> |
|||
array(2) { |
|||
["attr1"]=> |
|||
string(2) "11" |
|||
["attr2"]=> |
|||
string(2) "12" |
|||
} |
|||
} |
|||
===sxe->elem1[2] |
|||
bool(false) |
|||
NULL |
|||
===sxe->elem11 |
|||
bool(true) |
|||
object(SimpleXMLElement)#%d (1) { |
|||
["elem111"]=> |
|||
object(SimpleXMLElement)#%d (1) { |
|||
["elem1111"]=> |
|||
object(SimpleXMLElement)#%d (0) { |
|||
} |
|||
} |
|||
} |
|||
===sxe->elem11->elem111 |
|||
bool(true) |
|||
object(SimpleXMLElement)#%d (1) { |
|||
["elem1111"]=> |
|||
object(SimpleXMLElement)#%d (0) { |
|||
} |
|||
} |
|||
===sxe->elem11->elem111->elem1111 |
|||
bool(true) |
|||
object(SimpleXMLElement)#%d (0) { |
|||
} |
|||
===sxe->elem22 |
|||
bool(false) |
|||
object(SimpleXMLElement)#%d (0) { |
|||
} |
|||
===sxe->elem22->elem222 |
|||
bool(false) |
|||
NULL |
|||
===sxe->elem22->attr22 |
|||
bool(false) |
|||
NULL |
|||
===sxe->elem22["attr22"] |
|||
bool(false) |
|||
NULL |
|||
===DONE=== |
|||
@ -0,0 +1,16 @@ |
|||
<?xml version='1.0'?> |
|||
<!DOCTYPE sxe SYSTEM "sxe.dtd" [ |
|||
<!ENTITY % incent SYSTEM "sxe.ent"> |
|||
%incent; |
|||
]> |
|||
<sxe id="123"> |
|||
<elem1 attr1='first' attr2='second'>There is some text.<!-- comment --><elem2 att25='25' att42='42'> |
|||
<elem3> |
|||
<elem4> |
|||
<?test processing instruction ?> |
|||
</elem4> |
|||
</elem3> |
|||
</elem2>Here is some more</elem1> |
|||
<elem1 attr1='11' attr2='12'/> |
|||
<elem11><elem111><elem1111/></elem111></elem11> |
|||
</sxe> |
|||
@ -1,21 +1,34 @@ |
|||
<?xml encoding='US-ASCII'?> |
|||
|
|||
<!ELEMENT sxe elem1, elem 11> |
|||
<!ELEMENT sxe (elem1+, elem11, elem22*)> |
|||
<!ATTLIST sxe id CDATA #implied> |
|||
|
|||
<!ELEMENT elem1 elem2> |
|||
<!ELEMENT elem1 elem2*> |
|||
<!ATTLIST elem1 attr1 CDATA #required |
|||
attr2 CDATA "default> |
|||
|
|||
<!ELEMENT elem2 elem3> |
|||
<!ATTLIST elem2> |
|||
<!ELEMENT elem2 elem3*> |
|||
<!ATTLIST elem2 att25 CDATA #implied |
|||
att42 CDATA #implied> |
|||
|
|||
<!ELEMENT elem3 elem4> |
|||
<!ELEMENT elem3 elem4*> |
|||
<!ATTLIST elem3> |
|||
|
|||
<!ELEMENT elem4 EMPTY> |
|||
<!ATTLIST elem4> |
|||
|
|||
<!ELEMENT elem11 EMPTY> |
|||
<!ELEMENT elem11 elem111*> |
|||
<!ATTLIST elem11> |
|||
|
|||
<!ELEMNET elem111 elem1111*> |
|||
<!ATTLIST elem111> |
|||
|
|||
<!ELEMENT elem1111 EMPTY> |
|||
<!ATTLIST elem1111> |
|||
|
|||
<!ELEMENT elem22 elem222*> |
|||
<!ATTLIST elem22 attr22 CDATA #implied> |
|||
|
|||
<!ELEMENT elem222 EMPTY> |
|||
<!ATTLIST elem222> |
|||
|
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue