人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHP5のsimpleXML関数についての質問です。

simpleXML関数でダイレクトにXMLのある要素にアクセスをして、その要素の内容によってはその要素を削除したい(addChildの逆)と思っています。
simpleXML関数自体には要素を削除するメソッドがないようなのでDOMなどで代わりに処理をする必要があるかと思っています。
となると最初からDOMを使うべきだという結論になりそうなのですが、実際はどうなのでしょうか?
できればsimpleXML関数を使いたいと思っています。

具体的には以下の操作を実現したいと思っています。
・雛形のXMLがある。
・外から受け取った情報を雛形のXMLの各要素に入力していく(要素Aにはa、要素Bにはb)。
・外から受け取った情報に雛形のXMLの要素に入力するデータがなかった場合はその要素を削除(要素Cはあるけれども外からcを受け取っていないので要素Cごと削除)
・完成したXMLを出力。

以上よろしくお願いします。

●質問者: k1LoW
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:DOM XML アクセス ダイレクト データ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● kidd-number5
●60ポイント
<?php
$xmlstr = <<<XML
<?xml version='1.0' standalone='yes'?>
<root>
<child>
<node>aaaa</node>
<node>bbbb</node>
</child>
</root>
XML;

$xml = new SimpleXMLElement($xmlstr);
unset($xml->child->node[0]);

//echo $xml->asXML();
?> 

ノードの削除は上のような方法でどうでしょう?

要は変数のように扱ってしまうことができるのがsimpleXMLのよさのような気がします。

◎質問者からの返答

まさにこれです!

ありがとうございます!

unsetというものがあるんですね。

勉強になりました!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ