(PHP 8 >= 8.4.0)
Dom\Attr::rename — Altera o nome qualificado ou namespace de um atributo
Este método altera o nome qualificado ou namespace de um atributo.
namespaceURI
qualifiedName
Nenhum valor é retornado.
Dom\NAMESPACE_ERR
qualifiedName
.
Dom\INVALID_MODIFICATION_ERR
Exemplo #1 Exemplo de Dom\Attr::rename() para alterar o namespace e o nome qualificado
Isto altera o nome qualificado de my-attr
para
my-new-attr
e também altera seu namespace para
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();
?>
O exemplo acima produzirá:
<?xml version="1.0" encoding="UTF-8"?> <root xmlns:ns1="urn:my-ns" ns1:my-new-attr="value"/>
Exemplo #2 Exemplo de Dom\Attr::rename() para alterar somente o nome qualificado
Isto apenas altera o nome qualificado de my-attr
e mantém o namespace URI igual.
<?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();
?>
O exemplo acima produzirá:
<?xml version="1.0" encoding="UTF-8"?> <root my-new-attr="value"/>
Nota: Às vezes é necessário alterar o nome qualificado e o URI do namespace juntos em uma única etapa para não quebrar nenhuma regra do namespace.