指向性メモ::2005-01-20

ページ情報
制作日
2005-01-20T20:39:29+09:00
最終更新日
2005-01-30T22:35:53+09:00

DOMもバグってる

Created:
2005-01-20T20:39:29+09:00

PHP5.0.3だと、DOMのsaveXML()save()がバグってる。createElement()で作られたエレメントノードは名前空間がnullになるはずなのに、親要素のデフォルト名前空間を引き継いでしまっている。

$dom = new DomDocument();
$rootNode = $dom->appendChild($dom->createElementNS("http://www.arielworks.com/", "root"));
$rootNode->appendChild($dom->createElement("child"));
print $dom->saveXML();

このようなコードを書いた場合、本来は次のようになるはずだ(見やすいように整形してある)。

<?xml version="1.0">
<root xmlns="http://www.arielworks.com/">
    <child xmlns="">
</root>

しかし、実際には、強調した部分が抜け落ちてしまい、child要素の名前空間URIが「http://www.arielworks.com/」になってしまっている。

どうやら内部処理的には、きちんと「null」を保持しているようで、save()系のメソッドを使わなければ特に問題ない。恐らく、DOMツリーを文字列に変換する処理に何か問題があるのだろう。

Comments
4
Trackbacks
0
PermaLink
http://yudai.arielworks.com/memo/2005/01/20/203929

HIMMELとか

Created:
2005-01-20T21:11:06+09:00
Comments
0
Trackbacks
0
PermaLink
http://yudai.arielworks.com/memo/2005/01/20/211106
連絡先、リンク、転載や複製などについては『サイト案内』をご覧ください。Powered by HIMMEL

I ♥ Validator