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>

[su_spacer size=”20″]

システムに伝える目的の記述のため、人間にはわかりにくい記述ですが、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();

[su_spacer size=”20″]
まず、$xml_textにxml構文を代入します。

SimpleXMLElementをnewします。

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

最後に出力です。

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

https://www.sejuku.net/

[su_spacer size=”20″]

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

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

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

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

[su_spacer size=”20″]

きちんと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"); // 出力ファイルのパスを記述

[su_spacer size=”20″]

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

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

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

[su_spacer size=”20″]

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

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

まとめ

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

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

それでは、また。

この記事を書いた人

独学PG&SE、東京在住30代女性。
誰でもプログラマーになれるがモットーで、わかりやすい記事を目指しています。

目次