(PHP 8 >= 8.4.0)
Dom\Attr::rename — Изменяет квалифицированное имя или пространство имён атрибута
Метод изменяет квалифицированное имя или пространство имён атрибута
namespaceURIНовое пространство имён URI атрибута.
qualifiedNameНовое квалифицированное имя атрибута.
Функция не возвращает значения после выполнения.
Dom\NAMESPACE_ERR
Возникает в случае ошибки с пространством имён,
определяемым параметром qualifiedName.
Dom\INVALID_MODIFICATION_ERRВозникает в случае если в элементе уже существует атрибут с таким же квалифицированным именем.
Пример #1 Пример использования метода Dom\Attr::rename(), чтобы изменить пространство имён и квалифицированное имя
Это изменяет квалифицированное имя my-attr на my-new-attr,
а также изменяет его пространство имён на 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(), чтобы изменить только квалифицированное имя
При этом изменяется только квалифицированное имя my-attr,
а пространство имён URI остается прежним.
<?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"/>
Замечание:
Иногда необходимо изменить квалифицированное имя и пространство имён URI в один приём, чтобы не нарушить правила пространства имён.