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