File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / simplexml / tests / 031.phpt
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 23:48:01 2012 UTC (12 years, 5 months ago) by misho
Branches: php, MAIN
CVS tags: v5_4_3elwix, v5_4_29p0, v5_4_29, v5_4_20p0, v5_4_20, v5_4_17p0, v5_4_17, v5_3_10, HEAD
php

--TEST--
SimpleXML: addChild and addAttribute
--SKIPIF--
<?php if (!extension_loaded("simplexml")) print "skip"; ?>
--FILE--
<?php 
$xml =<<<EOF
<root s:att1="b" att1="a" 
      xmlns:s="urn::test" xmlns:t="urn::test-t">
   <child1>test</child1>
   <child1>test 2</child1>
   <s:child3 />
</root>
EOF;

$sxe = simplexml_load_string($xml);

/* Add new attribute in a new namespace */
$sxe->addAttribute('v:att11', 'xxx', 'urn::test-v');

/* Try to add attribute again -> display warning as method is for new Attr only */
$sxe->addAttribute('v:att11', 'xxx', 'urn::test-v');

/* Add new attribute w/o namespace */
$sxe->addAttribute('att2', 'no-ns');

$d = $sxe->attributes();
/* Try to add element to attribute -> display warning and do not add */
$d->addChild('m:test', 'myval', 'urn::test');


/* Test adding elements in various configurations */
$sxe->addChild('m:test1', 'myval', 'urn::test');

/* New namespace test */
$n = $sxe->addChild('m:test2', 'myval', 'urn::testnew');

$sxe->addChild('test3', 'myval', 'urn::testnew');
$sxe->addChild('test4', 'myval');

/* Does not add prefix here although name is valid (but discouraged) - change behavior? */
$sxe->addChild('s:test5', 'myval');

echo $sxe->asXML();
?>
===DONE===
--EXPECTF--
Warning: SimpleXMLElement::addAttribute(): Attribute already exists in %s031.php on line %d

Warning: SimpleXMLElement::addChild(): Cannot add element to attributes in %s031.php on line %d
<?xml version="1.0"?>
<root xmlns:s="urn::test" xmlns:t="urn::test-t" xmlns:v="urn::test-v" s:att1="b" att1="a" v:att11="xxx" att2="no-ns">
   <child1>test</child1>
   <child1>test 2</child1>
   <s:child3/>
<s:test1>myval</s:test1><m:test2 xmlns:m="urn::testnew">myval</m:test2><test3 xmlns="urn::testnew">myval</test3><test4>myval</test4><test5>myval</test5></root>
===DONE===

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>