[PHP-users 18683]Re: XMLDOMでのエレメントの削除のしかた
tamagawa
tamagawa @ skygroup.jp
2003年 10月 29日 (水) 20:41:38 JST
玉川と申します。
nodeはXMLを構成する要素全般の祖先となるクラス、
elementはnodeの子孫でいわゆるタグをあらわすもの
と考えていいと思います。
ちょっとはまりそうなのが、XMLをDOMに変換したとき、
タグの後の改行や、それに続く行頭のスペースやタブ
があるばあい、それらは独立したtext nodeとして
扱われることです。つまり、
<foo>
<foo2>
</foo>
をDOMに変換した場合、<foo>と<foo2>に加えて、<foo>と
<foo2>の間の改行+空白、そして<foo2>と</foo>の間の改行
もひとつのnodeになるわけです。
この場合、<foo>の次にくる<foo2>を操作しているつもり
なのに実は単なるtext node(しかも空白に見える)を
操作していることになってしまいます。
まずはget_class関数を使って、操作しようとしている要素の
クラスが何かを確認してみてはいかがでしょう?
--
玉川竜司
mkomura @ eadvisor.co.jp wrote:
> はじめまして 甲村と申します。
>
> 現在PHP4.3.3にてXMLDOMを使って設定ファイルを作成し操作
> するプログラムを作っているのですが、既存ファイルに新たにエレメント
> の追加は出来るのですが、既存のエレメントの削除が出来ません。
>
> エレメントとノードの違いが良く理解できていないのですが
> DOMElementオブジェクトにremove_child(obj)などメソッドを指定すると
> メソッドがありませんとのエラーが出てしまいます。
> DOMNodeのメソッドなのは判っているのですが、DOMNodeの取り出し方が
> 判りません。
>
> どのようにNodeを取得し削除すれば良いのでしょうか?
>
> ご教授願えれば幸いです。
> よろしくお願いいたします。
>
>
> <!--
> 甲村 護
> -->
> _______________________________________________
> PHP-users mailing list
> PHP-users @ php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
>
PHP-users メーリングリストの案内