PHPでxmlにデータを出力!難しくない解説で簡単理解

PHPで開発をしていると色々な形式で出力する必要も出てくると思います。

例えばxmlでの出力。

今回は、PHPでxml出力する方法について以下の内容でお話します。

【解説】xmlについて
【基本】xmlでデータを作る
【応用】xmlのファイル出力

わかりやすく解説しますので、最後まで読んで頂けると幸いです。

目次

xmlとは

まず、xmlとはなんでしょうか。

ExtensibleMarkupLanguageが正式の名称です。

htmlと同じマークアップ言語ですが用途は違います。

htmlはWEBページを作成するための言語です。
また、人間にわかりやすいように作られています。

htmlについてもっと詳しく知りたい場合は以下を参考にしてください。

xmlはシステム側に伝えるための言語です。
要素名や重要度、データ構造を伝えます。

以下のような記述がxmlです。

<?xml version="1.0" encoding="UTF-8"?>
<items>
<title>samurai</title>
<url>https://www.sejuku.net/</url>
</items>

システムに伝える目的の記述のため、人間にはわかりにくい記述ですが、htmlに変換する事も出来ます。

xmlについて、何となくご理解頂けでしょうか。

xmlでデータ作成

それでは、PHPからxmlを作成するにはどのようにすればよいでしょうか。

PHPでxmlを出力するためにはSimpleXMLElementを使用します。

以下のサンプルコードで確認しましょう。

<?php
$xml_text = <<<XML
<items>
<title>samurai</title>
<url>https://www.sejuku.net/</url>
</items>
XML;

$test_xml = new SimpleXMLElement($xml_text);

echo $test_xml->asXML();

まず、$xml_textにxml構文を代入します。

SimpleXMLElementをnewします。

newとは、オブジェクトの生成と初期化を行います。
newについてまだよくわからないという方は是非以下をご覧ください。

最後に出力です。

ブラウザの表示結果は以下になりました。

https://www.sejuku.net/

xmlの構文の一部が消えているように見えますね。

これはブラウザでタグが解釈され、消えているように見えているだけです。

ブラウザのソースコードの確認をしましょう。

<?xml version="1.0"?>
<items>
<title>samurai</title>
<url>https://www.sejuku.net/</url>
</items>

きちんとxmlとして出力されている事が確認できました。

xmlファイルに出力

ブラウザではタグが解釈されてソースコードでしかxmlを確認できませんでした。

直接xmlのコードを取得するためにファイルに出力しましょう。

前章で使用したサンプルコードを少し変更します。

<?php
$xml_text = <<<XML
<items>
<title>samurai</title>
<url>https://www.sejuku.net/</url>
</items>
XML;

$test_xml = new SimpleXMLElement($xml_text);

echo $test_xml->asXML("test.xml"); // 出力ファイルのパスを記述

最後の行に出力パスを記述します。

出力されたtest.xmlの結果は以下です。

<?xml version="1.0"?>
<items>
<title>samurai</title>
<url>https://www.sejuku.net/</url>
</items>

※中身を見るために、テキストエディタなどで開きます。

xmlを出力する事が確認できました。

まとめ

今回はPHPのxml出力についてお話しました。

SimpleXMLElementを使うと簡単に出力出来るので是非覚えて頂きたいと思います。

それでは、また。

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次