ほかのDomDocumentから引っ張ってきたノードをappendChild()したい場合、cloneNode()してからappendChild()すれば良いのだと思っていたのだが、どうもうまく行かない。PHP4の時はうまく行っていたのだけれど。
と思っていたらimportNode()があったのでこちらでインポートしてからappendChild()したらうまく行った。clonNode()は必要ないらしい。
マニュアルに書いてある範囲ではエンコーディング指定ができず、save()すると文字が実態参照になってしまう。ソースコードからそれらしい変数を探してみるとDomDocument->encodingなる値があったので、試しにUTF-8にしてみたところうまく行った。
PHP4でいうset_name()は使えなくなった。DOM3にrenameNodeというメソッドがあるのでそちらに移行したのかと思いきや、実はまだPHP5.0.0では実装されていない。かなり不便だ。