Site icon Tips Note by TAM

PHPでxmlファイルを読み込んでみる

PHPのsimplexmlを利用して、
XMLファイルを読み込んで情報を出力させてみます。

 

更新したブログの情報を別のサイトやトップページに表示させたい時などに便利です。

 

サンプルで下記を読み込んでみます。
[sample.xml]

<?xml version="1.0" encoding="utf-8"?>
<rss>
    <channel>
        <item>
            <title>テスト01</title>
            <link>URL01</link>
        </item>
        <item>
            <title>テスト02</title>
            <link>URL02</link>
        </item>
        <item>
            <title>テスト03</title>
            <link>URL03</link>
        </item>
    </channel>
</rss>

 

[テンプレート]
simplexml_load_file関数を利用して読み込みます。
※simplexml_load_file関数はPHP5が利用できるサーバーで利用できます。

 

<?
$xml = "sample.xml";//ファイルを指定
$xmlData = simplexml_load_file($xml);//xmlを読み込む
?>
<ul>
<? foreach ($xmlData->channel->item as $data) { ?>
    <li>
        <p>
            <a href="<? echo $data->link; ?>"><? echo $data->title; ?></a>
        </p>
    </li>
<? } ?>
</ul>

 

[出力結果]

 

<ul>
    <li>
        <p>
            <a href="URL01">テスト01</a>
        </p>
    </li>
    <li>
        <p>
            <a href="URL02">テスト02</a>
        </p>
    </li>
    <li>
        <p>
            <a href="URL03">テスト03</a>
        </p>
    </li>
</ul>

 

  ・応用で当ブログのFeedを読み込んでみます。 [Tips Note Feed] https://www.tam-tam.co.jp/tipsnote/feed

 

[テンプレート]
<?
$xml = "https://www.tam-tam.co.jp/tipsnote/feed";
$xmlData = simplexml_load_file($xml);
?>
<ul>
<? foreach ($xmlData->channel->item as $data) { ?>
    <li>
        <p>
            <a href="<? echo $data->link; ?>"><? echo $data->title; ?></a>
        </p>
        <p>[Category]</p>
        <ul>
<? foreach ($data->category as $cate) { ?>
            <li><? echo $cate; ?></li>
<? } ?>
        </ul>
    </li>
<? } ?>
</ul>

 

[出力結果]
<ul>
    <li>
        <p>
            <a href="https://www.tam-tam.co.jp/tipsnote/cms/post4110.html">
               【Movable Type】MT6の新機能、Data APIを試してみる
            </a>
        </p>
        <p>[Category]</p>
        <ul>
            <li>CMS</li>
            <li>Data API</li>
            <li>Movable Type</li>
        </ul>
    </li>
    <li>
        <p>
            <a href="https://www.tam-tam.co.jp/tipsnote/javascript/post4084.html">
                ベンダープレフィックスを調整してくれるgrunt-autoprefixer
            </a>
        </p>
        <p>[Category]</p>
        <ul>
            <li>JavaScript</li>
        </ul>
    </li>
    <li>
        <p>
            <a href="https://www.tam-tam.co.jp/tipsnote/program/post4067.html">
                PHP の array_merge() や array_recursive() 等の違いをまとめました
            </a>
        </p>
        <p>[Category]</p>
        <ul>
            <li>Program</li>
            <li>PHP</li>
        </ul>
    </li>
    <li>
        <p>
            <a href="https://www.tam-tam.co.jp/tipsnote/program/post4025.html">
                TwitterAPI 1.1でリツイートランキングを作る
            </a>
        </p>
        <p>[Category]</p>
        <ul>
            <li>Program</li>
            <li>API</li>
            <li>SNS</li>
            <li>Twitter</li>
        </ul>
    </li>
-省略-
</ul>