DOMElement::hasAttributeNS

(PHP 5)

DOMElement::hasAttributeNS Checks to see if attribute exists

Description

public bool DOMElement::hasAttributeNS ( string $namespaceURI , string $localName )

Indicates whether attribute in namespace namespaceURI named localName exists as a member of the element.

Parameters

namespaceURI

The namespace URI.

localName

The local name.

Return Values

Returns TRUE on success or FALSE on failure.

See Also

Коментарии

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'));
?>
2008-05-11 03:38:36
http://php5.kiev.ua/manual/ru/domelement.hasattributens.html

    Поддержать сайт на родительском проекте КГБ