(PHP 8 >= 8.4.0)
Dom\Attr::rename — 属性の名前空間または、修飾名を変更する
このメソッドは、属性の名前空間または、修飾名を変更します。
namespaceURI
qualifiedName
値を返しません。
Dom\NAMESPACE_ERR
付きで DOMException が発生する場合qualifiedName
によって決まる名前空間にエラーがあった場合に発生します。
Dom\INVALID_MODIFICATION_ERR
付きで DOMException が発生する場合例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 を一度にまとめて変更する必要がある場合があります。 これは、名前空間の規則を壊さないようにするためです。