開発 PHP

【PHP】xmlを読込むsimplexml_load_file

2013年11月9日

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

<?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($nameSpaces['namespace'])->id;

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

参考

simplexml_load_file(PHPマニュアル)

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

-開発, PHP
-, ,