• 締切済み

XMLをツリー形式で表示

kgbnの回答

  • kgbn
  • ベストアンサー率100% (1/1)
回答No.2

simpleXMLを使用して、簡単に実装できます。 下記のURLを参照してください。 dlの形式になったら 後はCSSで調整するのがBESTかと思われます。

参考URL:
http://lab.aica.ac.jp/tips/tips/phpxml.html

関連するQ&A

  • xmlデータの編集について

    xmlデータの編集について ******************************************* <?xml version="1.0" encoding="UTF-8" ?> <data> <member_list> <name>メンバー1</name> <age>10歳</age> <email>aaa@a.ne.jp</email> </member_list> <member_list> <name>メンバー2</name> <age>20歳</age> <email>bbb@a.ne.jp</email> </member_list> </data> ***************************************** 上記のような"member.xml"があり、これらをフォームから入力された内容に書き換えたい場合は、どういった処理を行えばいいのでしょうか? if(isset($_POST['add'])){ $xml=simplexml_load_file("member.xml"); $addElm = $xml -> addChild("member_list"); $addElm ->addchild("name",$_POST['names']); $addElm ->addchild("age",$_POST['age']); $addElm ->addchild("email",$_POST['email']); $xml ->asXml("member.xml"); } 追加でしたら上記のような"simplexml"の"addchild"でいけるのですが、書き換える場合の処理がわかりません。 どなたか、ご教授下さいませ。

    • 締切済み
    • PHP
  • PHP4でのXMLデータの取り扱い

    Webサービスを利用してXMLデータを取得するスクリプトをPHPで書いています。レンタルサーバの関係でバージョンは4.4.4しか使えません。 XMLを扱う関数というと、PHP5ではsimpleXMLやXMLReaderなどがあるようで、各要素へアクセスするにも $xml=simplexml_load_file('books.xml'); foreach($xml->book as $book){ .... という感じでオブジェクトとしてアクセスできるようですが、こういうのをPHP4で実現する方法はないのでしょうか?例えば入れ子になったデータだと、深い階層にたどりつくために foreach($results as $key => $value){ foreach($value $key2 => $value2){ foreach($value $key3 => $value3){ ... } } } みたいな感じで書いているのですが、まったくスマートではないですし、なにか間違っているような気がします。良い方法があればお教えください。よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPでXMLファイルを読み込みたい

    PHPを使ってxmlファイルを読み込んで、タグの中のデータなどを読み込んだりしたいです。 ですが、自作のxmlファイルだと simplexml_load_file()で読み込めません。xmlファイルの文字コードを色々と変えて試してみましたが、できませんでした。 ちなみに以下のコードは正常に動きました。Yahoo!のxmlファイルです。 $url = "http://rss.weather.yahoo.co.jp/rss/days/5710.xml"; $rss = simplexml_load_file($url); 出力は「【 25日(金) 嶺北(福井) 】 晴れ - 23℃/8℃ - Yahoo!天気・災害」でした。 何度かやるうちにアルファベットは表示できても日本語が表示できないということもありました。 また、xmlファイルをphpのプログラムに作らせたいです。そのときに、simplexml_load_file()で読み込める日本語も含むxmlファイルをphpで作成するプログラムを教えていただけると嬉しいです。 お願いします。

    • ベストアンサー
    • PHP
  • xml

    今契約してるサーバーがSQLをつけるとものすごい金額になってしまうので。XMLに挑戦中です。 作ってみたのですが、ソースが間違ってる?のか表示できません、教えてください. name.xml <?xml version="1.0" encoding="shift-jis"?> <test no="1"> <name>test</name> <no>10</no> <tel>123-456-789</tel> </test> test.php <html> <head> <title>sample1</title> </head> <body> <?php $doc->load("name.xml"); $name = $doc->selectSingleNode("test"); $list = $name->selectNodes("*"); $no = $list->item(1); $text = " 番号 " . $no . "<br>"; print $text; ?> </body> </html>

    • ベストアンサー
    • PHP
  • simplexml_load_stringで取得したオブジェクトをペー

    simplexml_load_stringで取得したオブジェクトをページングして表示させたいのですが、どうすればよいでしょうか? ▽現状 $xml = simplexml_load_string (引数); $hits = $xml->Body->Items; foreach ($hits as $hit) { echo $hit->Url; echo $hit->UrlImage; となっていて、取得したものがそのまま表示されているだけの状態です。 下記サイトを参考に、ページングしようとしているのですが、 http://tenderfeel.xsrv.jp/php/639/ simplexml_load_stringで取得したオブジェクト型(?)のものを、 foreachではなく、for文で回数を指定させて回すには、 どうすればよいのでしょうか。

    • ベストアンサー
    • PHP
  • RSSのXMLロードで失敗してしまう

    RSSのデータを取得する、という処理を行いたいのですが、 文字コードの件でひっかかってしまっているようで なかなか前に進むことができません。 ************ // RSSの内容を取得する $rss_text = file_get_contents(※RSSのフィードURL); // RSSの文字エンコーディングを変換→再変換 $rss_text = mb_convert_encoding($rss_text, 'SJIS', 'UTF-8'); $rss_text = mb_convert_encoding($rss_text, 'UTF-8', 'SJIS'); $rss_text = preg_replace('/[\x00-\x1f]/', '', $rss_text); // RSSをパースする $rss_xml = new SimpleXMLElement($rss_text); if ($rss_xml) { // XML解析に成功した場合 // SimpleXMLElementオブジェクトからデータを取得 $items = $rss_xml->item; foreach($items as $item) { echo 'ID:'. $item->guid. '<br />'; echo 'リンク:'. $item->link. '<br />'; echo '日付:'. $item->pubDate. '<br />'; echo 'タイトル:'. $item->title. '<br />'; echo '本文:'. $item->description. '<br />'; } } ************ こういったコードを組んでいるのですが、現状では Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 1: parser error : attributes construct error in... Warning: simplexml_load_string() [function.simplexml-load-string]: ^ in... Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 1: parser error : Couldn't find end of Start Tag rss line 1 in... Warning: simplexml_load_string() [function.simplexml-load-string]: ^ in... Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 1: parser error : Extra content at the end of the document in... Warning: simplexml_load_string() [function.simplexml-load-string]: ^ in... このようなエラーが表示されてしまいます。 自分なりに文字コードを処理しているつもりではあるのですが、 他にも何かしなければならないことがあるのでしょうか? どうぞ知恵を貸していただければと思います。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • xml画像データを表示するphp

    xml画像データを表示するphp下記で構文エラー....解りません ご教授宜しくお願い致します。 IMAGE.XML <?xml version="1.0"?> <photos> <photo url="http://www.kahokanko.com/menu/1.jpg"/> <photo url="http://www.kahokanko.com/menu/13.jpg"/> <photo url="http://www.kahokanko.com/menu/8.jpg"/> </photos> IMAGE.PHP <?php $xml = simplexml_load_file($req) foreach($req->photos->photo as $value){ printf('<img src="%s"><br>', $value->photo->URL); }

    • 締切済み
    • PHP
  • twitterのOAuth認証+xml抽出(php

    こんにちは。 PHPのプログラムで分からない部分があるので質問させてください。 twitterAPIを用いてアカウントの情報のxmlを取得し、simplexmlで解析して ・フォロワー数 ・フォロー数 ・リストされている数 ・ツイート数 ・認証アカウントかどうか といったステータスをsimplexml_load_fileで読み込んで、抽出して変数に入れたいのですが・・・ (この変数に入れたステータスで色々と計算をする予定です) エラーが出てファイルを読み込んでくれません。 ユーザー情報を取得するAPIが認証を通さないといけないため、OAuthを用いて認証しています。 認証が必要のないAPIで返ってきたxmlは問題無くsimplexml_load_fileが使えます。 ちなみにさくらのレンタルサーバーのスタンダードで、PHPのバージョンは5.2.17です。 色々試してみたのですが、何が原因なのか分からないので、ご教授お願いします。 <コード> <?php // twitteroauth.phpを読み込む。 require_once("twitteroauth.php"); // Consumer keyの値 $consumer_key = "******"; // Consumer secretの値 $consumer_secret = "*****"; // Access Tokenの値 $access_token = "******"; // Access Token Secretの値 $access_token_secret = "******"; // OAuthオブジェクト生成 $to = new TwitterOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret); $req = $to->OAuthRequest("http://api.twitter.com/1/users/show/id.xml","GET",array("user_id"=>"******")); $xml = simplexml_load_file($req) or die("XMLパースエラー"); ?> <実行結果> Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "<?xml version="1.0" encoding="UTF-8"?> <user> <id>*******</id> <name>******</name> <screen_name>******</screen_name> <location>九州</location> <description>webクリエイ ・・・(以下略)・・・ ;。 &am in /home/*********/www/newfile.php on line 20 XMLパースエラー

    • 締切済み
    • PHP
  • アクセス コンボボックスのリストの条件を指定する

    コンボボックスで表示されるリストを条件に応じて色々に変更できますか? テーブル1 ID 種類   品名 1 やさい  白菜 2 やさい  にんじん 3 くだもの りんご 4 くだもの みかん フォーム1 種類 やさい 品名 ___ コンボボックスリスト        白菜        にんじん 現在は、コンボボックスのリスト(値集合ソース)を テーブル1に指定しておりますので、4個全部表示されてしまいますが、 これを、上で入力した「やさい」を参考にして 「やさい」に該当する「白菜」と「にんじん」しか表示されないようにしたいのです。 よろしくお願いいたします。

  • XMLのロードに失敗する

    PHP5においてsimplexml_load_fileを使って、様々なサイトのRSS(XML)を読み込もうとしています。 一部のサイトに対してFalseが返ってきます。いまいちコンディションが掴みきれておらず うまくいくことうまくいかないことを記述させていただきます。 PHP設置環境の種類 ローカルサイト上のLinux、レンタルサーバA、レンタルサーバB、レンタルサーバC ターゲットRSS NHK http://www3.nhk.or.jp/rss/news/cat0.xml はてな http://feeds.feedburner.com/hatena/b/hotentry 毎日新聞 http://mainichi.jp/rss/etc/flash.rss 問題となるのは毎日新聞です。環境によって読めたり読めなかったりします。 ローカルでの結果 NHK、はてな、毎日新聞 いずれもOK レンタルサーバA 毎日だけNG レンタルサーバB すべてOK レンタルサーバC 毎日だけNG 今回はこのサーバAやCの問題をクリアしたいのですが方法がわかりません。 simplexml_load_fileがNHKやはてなに対して動作するのに毎日に対してのみ動かないという 観点からすると毎日側の仕様の影響かとも思うのですが、 PHPの設置環境によって動作が変わるという観点も加味すると PHPの設置環境の何かに依存し、読み込み対象が絞られる、というようなイメージを持っています。 いずれも無料サーバということもあり、検討ぐらいつけてから管理人に相談させていただくのが 良いかと思いこの場をお借りしております。 なお、レンタルサーバCは.land.toです。 よろしくお願いいたします。 エラー文 $data = simplexml_load_file($rss); if ($data == FALSE){ echo "Failed loading XML<br>\n"; foreach(libxml_get_errors() as $error) {echo "\t", $simplexml_load_fileerror->message;}//Failed loading XML was the returned error } Warning: simplexml_load_file(http://rss.yomiuri.co.jp) [function.simplexml-load-file]: failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /home/httpd/****/public_html/php/rss.php on line 9 Failed loading XML failed to load external entity "http://rss.yomiuri.co.jp" なお、rss.phpのline 9は $data = simplexml_load_file($rss);です。

    • ベストアンサー
    • PHP