開発 PHP

【PHP】xmlを読込むsimplexml_load_file

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

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

simplexml_load_file関数を使います。

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

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

sample.xml

[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>
[/xml]

sample.php

[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;
[/php]

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

参考

simplexml_load_file(PHPマニュアル)

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

-開発, PHP
-, ,

© 2020 かえでBlog