ID: 43221 Comment by: hubert dot roksor at gmail dot com Reported By: jevon at jevon dot org Status: Assigned Bug Type: SimpleXML related Operating System: Windows XP PHP Version: 5.2.4 Assigned To: rrichards New Comment:
It works just fine if you define your namespace beforehand. $xml = new SimpleXMLElement('<root xmlns:bar="http://bar.com"/>'); $n = $xml->addChild("node", "value"); $n->addAttribute("a", "b"); $n->addAttribute("c", "d", "http://bar.com"); print_r($xml->asXml()); I don't know, perhaps SimpleXML should raise a E_NOTICE on unknown namespace, but it's really a matter of good coding practice. Btw, jevon, I don't recommend saying that something is "screwy" when filing bug reports, it doesn't really motivate developpers of said software to look into them ^^; Previous Comments: ------------------------------------------------------------------------ [2007-11-12 09:55:18] [EMAIL PROTECTED] Rob, could you take a look at it plz? ------------------------------------------------------------------------ [2007-11-09 02:48:17] jevon at jevon dot org Description: ------------ Namespace support in SimpleXML is all screwy. In particular, you cannot add two differently-namespaced attributes to a SimpleXML node; the first one is lost. Reproduce code: --------------- $xml = new SimpleXMLElement('<root />'); $n = $xml->addChild("node", "value"); // still fails even if we set a NS here $n->addAttribute("a", "b"); // still fails even if we set a different NS here $n->addAttribute("c", "d", "http://bar.com"); print_r($xml->asXml()); Expected result: ---------------- <root xmlns:a="http://bar.com"><node a="b" a:c="d">value</node></root> Actual result: -------------- <root><node xmlns="http://bar.com" a="b" c="d">value</node></root> ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=43221&edit=1