tabeleの中にはめ込む形でXMLの内容を表示したいのですが・・・。
+-----------------+
|XMLtable
+-----------------+
|
|読み込んだXMLファイルの内容を表示
|
+-----------------+
phpで読み込んでxmlをパースしてからHTMLのテーブルとして出力したいのでしょうか?
そうであれば、
<?php $xmlfile="XMLファイルのURL"; $article=simplexml_load_file($xmlfile); //simplexml_load_fileでXMLをパースします。 //ここからはxmlの内容次第ですが、例えばアメブロのRSSを読み込んでテーブル表示したい場合 echo "<table><tr><td>題名</td><td>URL</td></tr>"; foreach($article->channel->item as $data){ echo "<tr><td>"; echo $data[title]; echo "</td><td>"; echo $data[link]; echo "</td></tr>"; } echo "</table>"; ?>
これでXMLをPHPで読み込んでHTML出力する事ができます。
/*
使用するPHPのバージョンはいくつでしょうか?
もし5.XならSimple XMLで簡単に扱うことができます。
http://jp.php.net/manual/ja/function.simplexml-load-file.php
example.xml
<?xml version="1.0" encoding="UTF-8"?> <diary> <day date="2008-01-24" title="XMLの例" > <body>これはXML文書です。</body> </day> </diary>
$xml = simplexml_load_file('example.xml'); print_r($xml); /* 出力結果 SimpleXMLElement Object ( [day] => SimpleXMLElement Object ( [@attributes] => Array ( [date] => 2008-01-24 [title] => XMLの例 ) [body] => これはXML文書です。 ) ) */
もし4.XならPEAR::XML_Unserializerを用いることで簡単に扱えます。
http://pear.php.net/package/XML_Serializer/
require_once "XML/Unserializer.php"; $example = '<?xml version="1.0" encoding="UTF-8"?> <diary> <day date="2008-01-24" title="XMLの例" > <body>これはXML文書です。</body> </day> </diary>'; $parser = new XML_Unserializer(array('parseAttributes' => true)); $parser->unserialize($example); $data = $parser->getUnserializedData(); print_r($data); /* 出力結果 Array ( [day] => Array ( [date] => 2008-01-24 [title] => XMLの例 [body] => これはXML文書です。 ) ) */
もしかして、XML文書を開いたときの見たまま(タグ)を表示したいということでしょうか。
とすれば < とか > とかHTML において特殊な意味を持つ文字をHTMLの表現形式に変換する必要がありますかね。(タグとして解釈されないように)
それには htmlspecialchars が使えると思います。
http://www.php.net/manual/ja/function.htmlspecialchars.php
以下あまりお行儀よくないですが、サンプルです。
改行やスペースも表示したいので <pre> で囲んでます。
<?php $filename = "xmlbox/1/1.xml"; // 作成、保存したXML のファイル名 $xml = file_get_contents($filename); // ファイルの内容を取得 // ファイルが無かったときのエラー処理とかいっさい考慮してません ?> <table border="1" cellpadding="4" cellspacing="0"> <tr> <td>XMLtable</td> </tr> <tr> <td><pre><?php echo htmlspecialchars($xml) ?></pre></td> </tr> </table>
コメント(0件)