Changes the qualified name or namespace of an attribute

# Dom\Attr::rename

(PHP 8 >= 8.4.0)

Dom\Attr::rename — Changes the qualified name or namespace of an attribute

### 说明

public function Dom\Attr::rename(?string `$namespaceURI`, string `$qualifiedName`): void

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

### 参数

`namespaceURI`
  The new namespace URI of the attribute.
`qualifiedName`
  The new qualified name of the attribute.

### 返回值

没有返回值。

### 错误／异常

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.

### 示例

示例 #1 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();

    ?>

以上示例会输出：

    <?xml version="1.0" encoding="UTF-8"?>
    <root xmlns:ns1="urn:my-ns" ns1:my-new-attr="value"/>

示例 #2 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();

    ?>

以上示例会输出：

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

### 注释

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

### 参见

- Dom\Element::rename()

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open