Dom\Attr::rename

Changes the qualified name or namespace of an attribute

&reftitle.description; public `void` `Dom\Attr::rename` ``string``null```namespaceURI` `string` `qualifiedName`

This method changes the qualified name or namespace of an attribute.

&reftitle.parameters;

`namespaceURI`

- The new namespace URI of the attribute.

`qualifiedName`

- The new qualified name of the attribute.

&reftitle.returnvalues;

&return.void;

&reftitle.errors;

`DOMException` with code `Dom\NAMESPACE_ERR`

- Raised if there is an error with the namespace, as determined by `qualifiedName`.

`DOMException` with code `Dom\INVALID_MODIFICATION_ERR`

- Raised if there already exists an attribute in the element with the same qualified name.

&reftitle.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();

    ?>

&example.outputs;

    <?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();

    ?>

&example.outputs;

    <?xml version="1.0" encoding="UTF-8"?>
    <root my-new-attr="value"/>

&reftitle.notes;

It is sometimes necessary to change the qualified name and namespace URI together in one step to not break any namespace rules.

&reftitle.seealso;

- `Dom\Element::rename`