人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

作成、保存したXML文書をphpでサイト上に表示したいのですが、どうすればよいのでしょうか。
tabeleの中にはめ込む形でXMLの内容を表示したいのですが・・・。

+?????????????????+
|XMLtable
+?????????????????+

|読み込んだXMLファイルの内容を表示

+?????????????????+

●質問者: pinoco_5018
●カテゴリ:ウェブ制作
✍キーワード:PHP XML サイト ファイル 作成
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● hatettyo
●27ポイント

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出力する事ができます。


2 ● KeyKey
●27ポイント

/*

使用する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文書です。
 )
)
*/

3 ● bayan
●26ポイント

もしかして、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.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ