note 83116 added to domelement.hasattributens

From: Date: Sun, 11 May 2008 07:38:36 +0000
Subject: note 83116 added to domelement.hasattributens
Groups: php.notes 
Request: Send a blank email to php-notes+get-139263@lists.php.net to get a copy of this message
This does not work as expected (at least on 5.2.5) with attributes in the default namespace. For instance: <?php $dom = new DOMDocument(); $dom->loadXML('<?xml version="1.0"?><element xmlns="testns" attr="testval" />'); var_dump($dom->documentElement->hasAttributeNS('testns', 'attr')); ?> returns bool(false) whereas: <?php $dom = new DOMDocument(); $dom->loadXML('<?xml version="1.0"?><element xmlns:ns1="testns" ns1:attr="testval" />'); var_dump($dom->documentElement->hasAttributeNS('testns', 'attr')); ?> returns bool(true). NULL does work properly in the namespaceURI parameter, so changing my initial example to: <?php $dom = new DOMDocument(); $dom->loadXML('<?xml version="1.0"?><element xmlns="testns" attr="testval" />'); var_dump($dom->documentElement->hasAttributeNS(NULL, 'attr')); ?> returns bool(true) as expected. Or even better for when you don't know whether the NS will be default: <?php $dom = new DOMDocument(); $dom->loadXML('<?xml version="1.0"?><element xmlns="testns" attr="testval" />'); var_dump($dom->documentElement->hasAttributeNS( is_null($dom->documentElement->lookupPrefix('testns')) ? NULL : 'testns', 'attr')); ?> ---- Server IP: 209.41.74.194 Probable Submitter: 76.184.68.162 ---- Manual Page -- http://www.php.net/manual/en/domelement.hasattributens.php Edit -- https://master.php.net/note/edit/83116 Del: integrated -- https://master.php.net/note/delete/83116/integrated Del: useless -- https://master.php.net/note/delete/83116/useless Del: bad code -- https://master.php.net/note/delete/83116/bad+code Del: spam -- https://master.php.net/note/delete/83116/spam Del: non-english -- https://master.php.net/note/delete/83116/non-english Del: in docs -- https://master.php.net/note/delete/83116/in+docs Del: other reasons-- https://master.php.net/note/delete/83116 Reject -- https://master.php.net/note/reject/83116 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#139263) next »