Dom\Attr::rename
(PHP 8 >= 8.4.0)
Changes the qualified name or namespace of an attribute
Description
This method changes the qualified name or namespace of an attribute.
Parameters
namespaceURIThe new namespace URI of the attribute.
qualifiedNameThe new qualified name of the attribute.
Return Values
Void
Errors/Exceptions
DOMExceptionwith codeDom\NAMESPACE_ERRRaised if there is an error with the namespace, as determined by
qualifiedName.DOMExceptionwith codeDom\INVALID_MODIFICATION_ERRRaised if there already exists an attribute in the element with the same qualified name.
Examples
Dom\Attr::rename example to change both the namespace and qualified name
This changes the qualified name of my-attr to my-new-attr and also changes its namespace to urn:my-ns.
<?php
$doc = Dom\XMLDocument::createFromString('<root my-attr="value"/>');
$root = $doc->documentElement;
$attribute = $root->attributes['my-attr'];
$attribute->rename('urn:my-ns', 'my-new-attr');
echo $doc->saveXml();
?>The above example will output:
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns:ns1="urn:my-ns" ns1:my-new-attr="value"/>Dom\Attr::rename example to change only the qualified name
This only changes the qualified name of my-attr and keeps the namespace URI the same.
<?php
$doc = Dom\XMLDocument::createFromString('<root my-attr="value"/>');
$root = $doc->documentElement;
$attribute = $root->attributes['my-attr'];
$attribute->rename($attribute->namespaceURI, 'my-new-attr');
echo $doc->saveXml();
?>The above example will output:
<?xml version="1.0" encoding="UTF-8"?>
<root my-new-attr="value"/>Notes
It is sometimes necessary to change the qualified name and namespace URI together in one step to not break any namespace rules.
See Also
Dom\Element::rename