PHPのsimplexml利用してxmlファイルを読み込んでみる

なぜか知りませんが、RSS等のXMLファイルを読み込むようなページを作ることが続きました。
PHP5が利用できるサーバーであればsimplexmlでワタシでも実行できます。
備忘録的にまとめ。

まず、サンプル的に用意したXMLファイル(sample.xml)。これを読み込んでみます。

<?php
$fileName = "sample.xml";
$xmldata = simplexml_load_file($fileName);
echo '<pre>';
var_dump($xmldata);
echo '</pre>';
?>

simplexml_load_fileを使って、まずはXMLファイルを読み込みます(Line3)。
読み込んだXMLファイルがどのように構造化されたかをvar_dumpを用いて表示しています(Line5)。<pre>を使えば見やすく表示できます。

上記のとりあえず読み込んだみたサンプルファイル(dump.php)

var_dumpでの表示を基に、各値を出力してみます。

<?php
$fileName = "sample.xml";
$xmldata = simplexml_load_file($fileName);
echo "<h1>" .$xmldata->name. "</h1>\n";
echo "<p>" .$xmldata->description. "</p>\n";
?>
<h2>主な内野手</h2>
<dl>
<?php
foreach ($xmldata->player as $value) {
echo "<dt>" .$value->name. "</dt>\n";
echo "<dd>背番号:" .$value->number. "</dd>\n";
echo "<dd>" .$value->description. "</dd>\n";
}
?>
</dl>

var_dumpでの表示を見てみると、$xmldata->nameにチーム名、$xmldata->descriptionにチーム概要が格納されていることがわかりますので、それをLine4、5で出力しています。
また、$xmldata->playerに選手の情報が格納されていることがわかりますので、foreach文を使って出力しています(Line10)。

上記の出力してみたサンプル(index.php)

おっ!カンタンにできた!と喜んでいたのもつかの間。
実際制作したサイトでは外部のXMLファイルを読み込むのですが、アクセスのたびに読み込み→表示だとサーバーに負荷がかかり、表示も遅いので閲覧者にもストレスがかかります。そのため、読み込んだXMLファイルをキャッシュとして保存する必要があるんですよね。。
そのスクリプトもその後作成。結局、カンタンには終らせてくれませんでした。

Category PHP | WEB・ネット関連
Posted by masa [2010/12/06 17:40]

このエントリーをはてなブックマークに追加このエントリのはてなブックマーク数このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをつぶやく

Comment / Trackback

Trackback URL : http://masalog.info/2010/12/phpsimplexmlxml.html/trackback

Post Your Comment!

(承認されるまではコメントは表示されません。そのときはしばらく待ってください。)