PHP 8.5.0 Beta 3 available for testing

Dom\Attr::rename

(PHP 8 >= 8.4.0)

Dom\Attr::rename属性の名前空間または、修飾名を変更する

説明

public Dom\Attr::rename(?string $namespaceURI, string $qualifiedName): void

このメソッドは、属性の名前空間または、修飾名を変更します。

パラメータ

namespaceURI
属性の新しい名前空間 URI
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 を一度にまとめて変更する必要がある場合があります。 これは、名前空間の規則を壊さないようにするためです。

参考

  • Dom\Element::rename()
add a note

User Contributed Notes

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