作成、保存したXML文書をphpでサイト上に表示したいのですが、どうすればよいのでしょうか。

tabeleの中にはめ込む形でXMLの内容を表示したいのですが・・・。

+-----------------+
|XMLtable                
+-----------------+

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

+-----------------+

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2008/01/31 16:05:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:hatettyo No.1

回答回数23ベストアンサー獲得回数2

ポイント27pt

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

id:KeyKey No.2

回答回数29ベストアンサー獲得回数4

ポイント27pt

/*

使用する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文書です。
        )
)
*/
id:bayan No.3

回答回数100ベストアンサー獲得回数13

ポイント26pt

もしかして、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>

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません