Browse Source
- Added ability to add elements by index if such elements already exist
- Added ability to add elements by index if such elements already exist
- Added SimpleXMLElement::getName() to access the node name # This allows to retrieve the name of the root element which is otherwise # only available by converting the sxe object into a dom object.migration/RELEASE_1_0_0
3 changed files with 152 additions and 8 deletions
@ -0,0 +1,40 @@ |
|||||
|
--TEST-- |
||||
|
SimpleXML: getName() |
||||
|
--SKIPIF-- |
||||
|
<?php if (!extension_loaded("simplexml")) print "skip"; ?> |
||||
|
--FILE-- |
||||
|
<?php |
||||
|
$xml =<<<EOF |
||||
|
<people> |
||||
|
<person>Jane</person> |
||||
|
</people> |
||||
|
EOF; |
||||
|
|
||||
|
function traverse_xml($xml, $pad = '') |
||||
|
{ |
||||
|
$name = $xml->getName(); |
||||
|
echo "$pad<$name"; |
||||
|
foreach($xml->attributes() as $attr => $value) |
||||
|
{ |
||||
|
echo " $attr=\"$value\""; |
||||
|
} |
||||
|
echo ">" . trim($xml) . "\n"; |
||||
|
foreach($xml->children() as $node) |
||||
|
{ |
||||
|
traverse_xml($node, $pad.' '); |
||||
|
} |
||||
|
echo $pad."</$name>\n"; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
$people = simplexml_load_string($xml); |
||||
|
traverse_xml($people); |
||||
|
|
||||
|
?> |
||||
|
===DONE=== |
||||
|
--EXPECTF-- |
||||
|
<people> |
||||
|
<person>Jane |
||||
|
</person> |
||||
|
</people> |
||||
|
===DONE=== |
||||
@ -0,0 +1,74 @@ |
|||||
|
--TEST-- |
||||
|
SimpleXML: Adding an elements |
||||
|
--SKIPIF-- |
||||
|
<?php if (!extension_loaded("simplexml")) print "skip"; ?> |
||||
|
--FILE-- |
||||
|
<?php |
||||
|
$xml =<<<EOF |
||||
|
<people></people> |
||||
|
EOF; |
||||
|
|
||||
|
function traverse_xml($xml, $pad = '') |
||||
|
{ |
||||
|
$name = $xml->getName(); |
||||
|
echo "$pad<$name"; |
||||
|
foreach($xml->attributes() as $attr => $value) |
||||
|
{ |
||||
|
echo " $attr=\"$value\""; |
||||
|
} |
||||
|
echo ">" . trim($xml) . "\n"; |
||||
|
foreach($xml->children() as $node) |
||||
|
{ |
||||
|
traverse_xml($node, $pad.' '); |
||||
|
} |
||||
|
echo $pad."</$name>\n"; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
$people = simplexml_load_string($xml); |
||||
|
traverse_xml($people); |
||||
|
$people->person = 'Joe'; |
||||
|
$people->person['gender'] = 'male'; |
||||
|
traverse_xml($people); |
||||
|
$people->person = 'Jane'; |
||||
|
traverse_xml($people); |
||||
|
$people->person['gender'] = 'female'; |
||||
|
$people->person[1] = 'Joe'; |
||||
|
$people->person[1]['gender'] = 'male'; |
||||
|
traverse_xml($people); |
||||
|
$people->person[3] = 'Minni-me'; |
||||
|
$people->person[2]['gender'] = 'male'; |
||||
|
traverse_xml($people); |
||||
|
$people->person[3]['gender'] = 'error'; |
||||
|
|
||||
|
?> |
||||
|
===DONE=== |
||||
|
--EXPECTF-- |
||||
|
<people> |
||||
|
</people> |
||||
|
<people> |
||||
|
<person gender="male">Joe |
||||
|
</person> |
||||
|
</people> |
||||
|
<people> |
||||
|
<person gender="male">Jane |
||||
|
</person> |
||||
|
</people> |
||||
|
<people> |
||||
|
<person gender="female">Jane |
||||
|
</person> |
||||
|
<person gender="male">Joe |
||||
|
</person> |
||||
|
</people> |
||||
|
|
||||
|
Warning: main(): Cannot add element person number 3 when only 2 such elements exist in %sext/simplexml/tests/027.php on line %d |
||||
|
<people> |
||||
|
<person gender="female">Jane |
||||
|
</person> |
||||
|
<person gender="male">Joe |
||||
|
</person> |
||||
|
<person gender="male">Minni-me |
||||
|
</person> |
||||
|
</people> |
||||
|
|
||||
|
Fatal error: Objects used as arrays in post/pre increment/decrement must return values by reference in %sext/simplexml/tests/027.php on line %d |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue