PHPでDOMElement書き換え時に'No Modification Allowed Error'
ロゴ
「Web 開発」に関連する記事一覧

PHPでDOMElement書き換え時に'No Modification Allowed Error'

2018/11/22 11:30
PHP 

PHP でサイトマップ用の XML を作ろうとしていて、DOMElement に setAttribute() を実行したら以下のエラーが出たので原因をメモしておきます。


Uncaught exception 'DOMException' with message 'No Modification Allowed Error'

変更が許可されていないらしいです。以下がエラーが出た時のコードです。


$xmlDoc = new DOMDocument("1.0", "UTF-8");
$urlsetElem = new DOMElement("urlset");
$urlsetElem->setAttribute( 'xmlns', 'http://www.sitemaps.org/schemas/sitemap/0.9' );
$xmlDoc->appendChild( $urlsetElem );

どうやら、DOMElement の setAttribute() は親のドキュメントに紐づいていないと変更が許可されないらしいので、以下のように変更しました。


$xmlDoc = new DOMDocument("1.0", "UTF-8");
$urlsetElem = new DOMElement("urlset");
$xmlDoc->appendChild( $urlsetElem );
$urlsetElem->setAttribute( 'xmlns', 'http://www.sitemaps.org/schemas/sitemap/0.9' );

これでエラーは出なくなりました。変更許可がない、だけじゃなくて、変更許可がなくなる要因も教えてくれていたら、神エラーメッセージでした。


    このエントリーをはてなブックマークに追加    

関連記事

にほんブログ村 ゲームブログ ファイアーエムブレムへ にほんブログ村 デザインブログ コンピュータグラフィックスへ

0.0424 sec
Copyright(C)2006-2018 wsp All Rights Reserved