mirror of
https://github.com/php/php-src.git
synced 2025-08-18 23:18:56 +02:00
- Add another write case
This commit is contained in:
parent
75b3d578d3
commit
24d83ebd0f
2 changed files with 47 additions and 0 deletions
|
@ -451,9 +451,14 @@ static void sxe_prop_dim_write(zval *object, zval *member, zval *value, zend_boo
|
|||
attr = (xmlAttrPtr)node;
|
||||
test = sxe->iter.name != NULL;
|
||||
} else if (sxe->iter.type != SXE_ITER_CHILD) {
|
||||
mynode = node;
|
||||
node = php_sxe_get_first_node(sxe, node TSRMLS_CC);
|
||||
attr = node ? node->properties : NULL;
|
||||
test = 0;
|
||||
if (attribs && !node && sxe->iter.type == SXE_ITER_ELEMENT) {
|
||||
node = xmlNewChild(mynode, mynode->ns, sxe->iter.name, NULL);
|
||||
attr = node->properties;
|
||||
}
|
||||
}
|
||||
|
||||
mynode = node;
|
||||
|
|
42
ext/simplexml/tests/028.phpt
Executable file
42
ext/simplexml/tests/028.phpt
Executable file
|
@ -0,0 +1,42 @@
|
|||
--TEST--
|
||||
SimpleXML: Adding an elements without text
|
||||
--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['name'] = 'John';
|
||||
traverse_xml($people);
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECTF--
|
||||
<people>
|
||||
</people>
|
||||
<people>
|
||||
<person name="John">
|
||||
</person>
|
||||
</people>
|
||||
===DONE===
|
Loading…
Add table
Add a link
Reference in a new issue