ConFoo 2025

Dom\Attr::rename

(PHP 8 >= 8.4.0)

Dom\Attr::renameChanges the qualified name or namespace of an attribute

Опис

public 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()
add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top