2011/11/20更新

[PHP] XMLを扱う

このエントリーをはてなブックマークに追加      

こんにちは、@yoheiMuneです。

今日はPHPでXMLを扱う方法を学びました(*゜▽゜)ノブログに残しておこっと。

f:id:yoheiM:20070311180839j:image



XMLファイルを読み込む

XMLファイルを読み込むには、以下のように実装する。

$root = simplexml_load_file('data001.xml');
print_r($root);

simplexml_load_file関数にファイルパスを指定する事で、SimpleXMLElementというオブジェクトを受け取ることが出来ます。print_r関数を利用して、どんなオブジェクトを取得したかを出力しています。



SimpleXMLElementオブジェクトから値を取り出す。

以下のXMLから値を取り出します。

(XML)

<?xml version="1.0" encoding="utf-8"?>
<datas>
  <data>
    <name>山田</name>
      <mail>yamada@aaa.com</mail>
      <tel>999-9999-9999</tel>
  </data>
  <data>
    <name>高橋</name>
    <mail>takahashi@aaa.com</mail>
    <tel>888-8888-8888</tel>
  </data>
  <data>
    <name>宮崎</name>
    <mail>miyazaki@aaa.com</mail>
    <tel>777-7777-7777</tel>
  </data>
</datas>

(PHP)

foreach ($root->children() as $data)
    echo(mb_convert_encoding($data->name . "," . $data->mail . "," . $data->tel . "\n", 'utf-8', 'sjis'));

$rootから子要素のElementを$data変数にうけて、for文を回します。$dataからname, mail, telの要素を取り出すことで、XMLのデータをコンソールに出力しています。「mb_convert_encoding(文字列, 変換後文字コード, 返還前文字コード)」を利用して、XMLのデータ(UTF-8)を出力用のデータ(SHIFT-JIS)に変換することで、文字化けするのを防いでいます。



XMLにデータを追加する

SimpleXMLElementにデータを追加する場合には、以下のように実装します。

$obj = $root->addChild('data');
$obj->addChild('name', 'yoheiM');
$obj->addChild('mail', 'yoheiM@aaa.com');
$obj->addChild('tel',  '555-5555-5555');

addChildにノード名を引数として指定して子要素(obj)を作成します。更にobjにname, mail, telの要素を追加します。



XMLを書き出す

SimpleXMLElementをファイルに書き出すには、以下のように実装すれば出来ます。

$root->asXML('data002.xml');

ファイル名を引数にasXML関数を実行することで、ファイルにXML要素が書き出されます。



最後に

今日のPHP学習も楽しかったなぁ。はやくPHPで色々なことが出来るようになりたい。作りたいサービスいっぱいあるし、サーバーは既に準備出来たし。あとは実装技術を向上させれば、色々とできるのかな♪(´ε` )全力疾走!!


関連ページ


運営しているサイトです。もし良ければご覧頂けると幸いです。

HTML5Learners:HTML5を学び合うFacebookPage

HTML5サンプルページ:作成したサンプルを載せているサイト

yoheim.NET:技術情報を中心に情報発信サイト



こんな記事もいかがですか?

RSS画像

もしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。