ID:               43826
 Updated by:       [EMAIL PROTECTED]
 Reported By:      sb1304 at hotmail dot com
-Status:           Open
+Status:           Feedback
 Bug Type:         DOM XML related
 Operating System: Windows/Linux
 PHP Version:      5.2.5
 New Comment:

Please try using this CVS snapshot:

  http://snaps.php.net/php5.2-latest.tar.gz
 
For Windows (zip):
 
  http://snaps.php.net/win32/php5.2-win32-latest.zip

For Windows (installer):

  http://snaps.php.net/win32/php5.2-win32-installer-latest.msi




Previous Comments:
------------------------------------------------------------------------

[2008-01-12 01:18:09] sb1304 at hotmail dot com

Apologies, ignore the comp->setAttributeNS... This should be commented
out. Was used for comparison test.

------------------------------------------------------------------------

[2008-01-12 01:14:07] sb1304 at hotmail dot com

Description:
------------
Creating a Namespace attribute through CreateAttributeNS always
attaches the namespace declaration to the root/ducumentElement even when
the node is another one. Same issue whether there is a default Namespace
or not. Same on Windows/Linux. SetAttributeNS performs as expected.

Reproduce code:
---------------
<?php
$doc = new DOMDocument ("1.0", "utf-8");
$root =
$doc->createElementNS("urn:ietf:params:xml:ns:epp-1.0",'employee');
$doc->appendChild($root);
$name = $root->appendChild($doc->createElement("empname"));
$name->appendChild($doc->createTextNode("test"));
$addr = $root->appendChild($doc->createElement("empaddr"));
$addr->appendChild($doc->createTextNode("test123"));
$comp = $root->appendChild($doc->createElement("comp"));
$comp->appendChild($doc->createTextNode("TEST LTD"));

//Create a attribute with namespace
$attr = $doc->createAttributeNS('ns','surname:prefix');
//append the new attribute node into the employee element
$comp->appendChild($attr);

//$root->setAttributeNS('ns', 'surname:prefix', 'none');
$comp->setAttributeNS('ns', 'surname:prefix', 'none');
//save the DOMDocument into a file
$test = $doc->saveXML();
echo $test;
?>

Expected result:
----------------
<?xml version="1.0" encoding="utf-8" ?> 
 <employee xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <empname>test</empname> 
  <empaddr>test123</empaddr> 
  <comp xmlns:surname="ns" surname:prefix="">TEST LTD</comp> 
 </employee>

Actual result:
--------------
<?xml version="1.0" encoding="utf-8" ?> 
 <employee xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:surname="ns">
  <empname>test</empname> 
  <empaddr>test123</empaddr> 
  <comp surname:prefix="">TEST LTD</comp> 
 </employee>


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=43826&edit=1

Reply via email to