(PHP 8 >= 8.4.0)
Dom\Attr::rename — Cambia el nombre calificado o el espacio de nombres de un atributo
Este método cambia el nombre calificado o el espacio de nombres de un atributo.
namespaceURI
qualifiedName
No devuelve ningún valor.
Dom\NAMESPACE_ERR
qualifiedName
.
Dom\INVALID_MODIFICATION_ERR
Ejemplo #1 Ejemplo de Dom\Attr::rename() para cambiar el espacio de nombres y el nombre calificado
Esto cambia el nombre calificado de my-attr
a
my-new-attr
y también cambia su espacio de nombres a
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();
?>
El resultado del ejemplo sería:
<?xml version="1.0" encoding="UTF-8"?> <root xmlns:ns1="urn:my-ns" ns1:my-new-attr="value"/>
Ejemplo #2 Ejemplo de Dom\Attr::rename() para cambiar solo el nombre calificado
Esto cambia solo el nombre calificado de my-attr
y mantiene el espacio de nombres URI sin cambios.
<?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();
?>
El resultado del ejemplo sería:
<?xml version="1.0" encoding="UTF-8"?> <root my-new-attr="value"/>
Nota: A veces es necesario cambiar el nombre calificado y el espacio de nombres URI juntos en un solo paso para no infringir las reglas de los espacios de nombres.