問題 × 解決策

PHPでXMLファイルを読み込む方法

  • 2020年01月16日
  • PHP

問題

PHPでxmlファイルを読み込んで、自由なフォーマットで表示させたい。

解決策

「simplexml_load_file()」関数で読み込み、「foreach」で展開する。

 

PHPでのXMLファイルの読み込み

PHPでXMLファイルを読み込み、表示させる方法をご紹介します。

XMLファイルの内容は、以下のようなお知らせのデータを想定しています。

news.xml

<?xml version="1.0" encoding="UTF-8"?>
<main>
  <news>
    <item>
		<times>2020年00月00日</times>
		<title>お知らせタイトル</title>
		<content>お知らせ本文が入ります。お知らせ本文が入ります。お知らせ本文が入ります。</content>
		<cat>news</cat>
		<catlabel>お知らせ</catlabel>
		<linkurl>http://keylopment.com/</linkurl>
    </item>
    <item>
		<times>2020年00月00日</times>
		<title>お知らせタイトル</title>
		<content>お知らせ本文が入ります。お知らせ本文が入ります。お知らせ本文が入ります。</content>
		<cat>event</cat>
		<catlabel>イベント</catlabel>
		<linkurl>http://keylopment.com/</linkurl>
    </item>
  </news>
</main>

「simplexml_load_file」関数でXMLファイルを読み込む。

PHPでXMLファイルを読み込むには、「simplexml_load_file」関数を使用します。

<?php 
$xml = simplexml_load_file("ファイルパス/data/news.xml");
?>

データの出力を「foreach」で行う。

格納した配列データを元に、出力を行います。

<section class="news-box section">
	<h2 class="titles title-level01">お知らせ</h2>
    <?php
    $count = 0;
	foreach($xml->news->item as $item):
	$count++;
	endforeach;
	if($count == 0):
    ?>
	<p>
		お知らせはありません。
	</p>
    <?php
    else:
    ?>
	<dl class="news-list clearfix">
    <?php
    foreach($xml->news->item as $item):
    ?>
		<dt>
			<span class="times"><?php echo $item->times; ?></span>
			<span class="cat <?php echo $item->cat; ?>"><?php echo $item->catlabel; ?></span>
		</dt>
		<dd>
			<p class="titles"><?php echo $item->title; ?></p>
			<div class="text">
			<?php if(!empty($item->linkurl)): ?>
			<a href="<?php echo $item->linkurl; ?>" target="_blank">
				<?php echo $item->content; ?>
			</a>
			<?php else: echo $item->content; endif; ?>
			</div>
		</dd>
    <?php
    endforeach;
    ?>
	</dl>
    <?php
    endif;
    ?>
</section><!-- news-box -->

データを出力していく流れ

XMLデータ内のnewsタグ内のitemタグ($xml->news->item)に対して「foreach」で繰り返し処理

  • $item->各タグ名として、項目の順番を気にせずに出力が可能なので、適宜好きな形にマークアップ

参考ページ

【PHPでxmlファイルを読み込んでみる | Tips Note by TAM】
https://www.tam-tam.co.jp/tipsnote/program/post4168.html

【【PHP入門】完全マスター!XMLを自由自在に扱う方法まとめ | 侍エンジニア塾ブログ(Samurai Blog) – プログラミング入門者向けサイト】
https://www.sejuku.net/blog/53590

コメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

one + 1 =

「問題 × 解決策」
月別アーカイブ一覧

「問題 × 解決策」
月別アーカイブ一覧