かえでBlog

色々なことを徒然と……

【PHP】xmlを読込むsimplexml_load_file

      2015/02/23

xmlを読込む処理が作る必要があったのでやり方のメモ

xmlファイルを読込む際には

simplexml_load_file関数を使います。

今回は特定ディレクトリ内のxmlを読込むので問題なかったのですが、ネット上にあるxmlを取得する際は

php.iniにallow_url_fopenがOnである必要があるみたいです。

sample.xml

<?xml version='1.0' encoding='UTF-8'?>
<test xmlns:namespace="http://kaede.jp">
        <id>test</id>
        <option>
                <line width="520" height="280">
                        <text>テキスト</text>
                </line>
                <line width="330" height="110">
                        <text>テキスト2</text>
                </line>
        </option>
        <namespace:id>543</namespace:id>
        <namespace:name>名前</namespace:name>
</test>

sample.php

$xml = simplexml_load_file('sample.xml');

//idの取出
echo $xml->id;

//最初のline内のtextの取出
echo $xml->option->line->text;
//または
echo $xml->option->line[0]->text;

//2つ目のlineのtextの取出
echo $xml->option->line[0]->text;

//1つ目のlineのwidth(属性)の取出し
echo $xml->option->line[0]['width'];

//namespace:id(名前空間)の取出し
$nameSpaces = $xml->getNamespaces(true);
echo $xml->children($xml->getNamespaces(true)['namespace'])->id;

属性の取出し方と名前空間がわからなかったのですが、これで取り出すことができそうです。

参考

simplexml_load_file(PHPマニュアル)

一手間必要。PHPでのSimpleXML関数のパース処理

 - PHP, 開発 , ,