[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 メーリングリストの案内