mirror of
https://github.com/php/php-src.git
synced 2025-08-19 08:49:28 +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;
|
attr = (xmlAttrPtr)node;
|
||||||
test = sxe->iter.name != NULL;
|
test = sxe->iter.name != NULL;
|
||||||
} else if (sxe->iter.type != SXE_ITER_CHILD) {
|
} else if (sxe->iter.type != SXE_ITER_CHILD) {
|
||||||
|
mynode = node;
|
||||||
node = php_sxe_get_first_node(sxe, node TSRMLS_CC);
|
node = php_sxe_get_first_node(sxe, node TSRMLS_CC);
|
||||||
attr = node ? node->properties : NULL;
|
attr = node ? node->properties : NULL;
|
||||||
test = 0;
|
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;
|
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