• 締切済み

xmlからの表示

始めまして。勉強中の者です。 以下の結果 http://api.tabelog.com/Ver1/RestaurantSearch/?Latitude=35.701&Longitude=139.754&Datum=world&SearchRange=small&Prefecture=tokyo&Station=%E6%B0%B4%E9%81%93%E6%A9%8B&ResultSet=large&SortOrder=totalscore&PageNum=1 を見やすくHTMLで表示されるにはどのような仕組みにすれば良いのでしょうか? PHP5の環境です。どのようにすれば、通常のウェブページのように表示されるのでしょうか? いまいち仕組みが分かりません。ご教授願います。

みんなの回答

回答No.2

突っ込まれる前に回答がヤバイので自己突っ込み 最初横で作ろうとして後から縦に変えた時に消し忘れました colgroup全部削除です。(XSLT)

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

回答じゃなくてすまん。 PHP5指定なのでPHPカテで出した方が回答付きやすいかもしれない #俺はPHPは書けないので今まで回答せず静観していた。XSLTは書いてたんだけどねぇ・・・(以下) #なお、できることなら新たな質問を立ち上げるときには【この回答にはポイントを付けずに】締め切って欲しい =========== <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns="http://www.w3.org/1999/xhtml"> <xsl:output method="xml" version="1.0" encoding="UTF-8" standalone="yes" omit-xml-declaration="yes" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes" media-type="text/html" /> <xsl:template match="/"> <html> <head> <title>食べログAPIサンプル</title> <style> table{ margin:0 auto; border-style:solid; } tbody{ margin:0 auto; } th,td { border-style:solid; text-align:center; } </style> </head> <body> <xsl:apply-templates select="RestaurantInfo" /> </body> </html> </xsl:template> <xsl:template match="Item"> <table> <xsl:attribute name="id">RestaurantInfo<xsl:value-of select="position()" /></xsl:attribute> <caption><xsl:value-of select="RestaurantName" /></caption> <colgroup> <col class="TabelogUrl" /> </colgroup> <colgroup> <col class="TotalScore" /> </colgroup> <colgroup> <col class="TasteScore" /> </colgroup> <colgroup> <col class="ServiceScore" /> </colgroup> <colgroup> <col class="MoodScore" /> </colgroup> <colgroup> <col class="Situation" /> </colgroup> <colgroup> <col class="DinnerPrice" /> </colgroup> <colgroup> <col class="LunchPrice" /> </colgroup> <colgroup> <col class="Address" /> </colgroup> <colgroup> <col class="Tel" /> </colgroup> <colgroup> <col class="BusinessHours" /> </colgroup> <colgroup> <col class="Holiday" /> </colgroup> <tbody> <tr><th>食べログURL</th><td><a><xsl:attribute name="href"><xsl:value-of select="TabelogUrl" /></xsl:attribute><xsl:value-of select="TabelogUrl" /></a></td></tr> <tr><th>総合評価</th><td><xsl:value-of select="TotalScore" /></td></tr> <tr><th>料理・味</th><td><xsl:value-of select="TasteScore" /></td></tr> <tr><th>サービス</th><td><xsl:value-of select="ServiceScore" /></td></tr> <tr><th>雰囲気</th><td><xsl:value-of select="MoodScore" /></td></tr> <tr><th>おすすめシチュエーション</th><td><xsl:value-of select="Situation" /></td></tr> <tr><th>ディナーの値段</th><td><xsl:value-of select="DinnerPrice" /></td></tr> <tr><th>最寄り駅</th><td><xsl:value-of select="LunchPrice" /></td></tr> <tr><th>住所</th><td><xsl:value-of select="Address" /></td></tr> <tr><th>連絡先電話番号</th><td><xsl:value-of select="Tel" /></td></tr> <tr><th>営業時間</th><td><xsl:value-of select="BusinessHours" /></td></tr> <tr><th>定休日</th><td><xsl:value-of select="Holiday" /></td></tr> <!--多分LongtitudeとLatitudeはGoogle Mapsに渡すパラメータだが,コーディング経験ないので省略--> </tbody> </table>

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • PHPでのXMLの表示について

    PHPでのXMLの表示について PHPで下記のようなXMLファイルから <タイトル>改行 <コメント>改行 <日付> <名前> というように取り出したいのですが 私の書いたソースでは下記のXMLファイル から名前(1)、コメント(1)、日付(1)、件名(1)しか 取り出せません。。 名前(2)、コメント(2)、日付(2)、件名(2)を取り出す にはどのように記述をしたら良いか教えて頂けない でしょうか。。 #私が書いたソース <?php $xml = simplexml_load_file('http://api.tabelog.com/Ver1/ReviewSearch/?Rcd=<RestruantCode>&Key=<APIKey>&SortOrder=update&PageNum=1'); $NickName = $xml->Item->NickName; $VisitDate = $xml->Item->VisitDate; $Title = $xml->Item->Title; $Comment = $xml->Item->Comment; echo "<p><b>".$Title."</b><br>".$Comment."<br>".$VisitDate." ".$NickName."</p"; ?> #XML(元は食べログのAPIより取得) <?xml version="1.0" encoding="utf-8" ?> - <ReviewInfo> <NumOfResult>11</NumOfResult> - <Item> <NickName>名前(1)</NickName> <VisitDate>日付(1)</VisitDate> <ReviewDate>'10/04/29</ReviewDate> <UseType>夜のみ</UseType> <Situations>友人・同僚と</Situations> <TotalScore>3.0</TotalScore> <TasteScore>3.0</TasteScore> <ServiceScore>3.0</ServiceScore> <MoodScore>3.0</MoodScore> <PriceDinner>¥8,000~¥9,999</PriceDinner> <PriceLunch /> <Title>タイトル(1)</Title> <Comment>コメント(1)</Comment> <PcSiteUrl>URL(1)</PcSiteUrl> <MobileSiteUrl>URL(1)</MobileSiteUrl> </Item> - <Item> <NickName>名前(2)</NickName> <VisitDate>日付(2)</VisitDate> <ReviewDate>'10/04/17</ReviewDate> <UseType>昼のみ</UseType> <Situations>デート</Situations> <TotalScore>4.0</TotalScore> <TasteScore>4.0</TasteScore> <ServiceScore>4.0</ServiceScore> <MoodScore>4.0</MoodScore> <PriceDinner /> <PriceLunch>¥3,000~¥3,999</PriceLunch> <Title>タイトル(2)</Title> <Comment>コメント(2)</Comment> <PcSiteUrl>URL(2)</PcSiteUrl> <MobileSiteUrl>URL(2)</MobileSiteUrl> </Item> </ReviewInfo>

    • ベストアンサー
    • PHP
  • APIで取得した情報の「次ページ」

    仕事で最近PHPの勉強をはじめ、将来的にはAPIを活用したサイトを作りたいのですが、次ページの表示の仕方がわかりません。 「次ページへ」 「前ページへ 次ページへ」 と表示したいのですがどのようにすれば、次ページや前ページを表示できるのでしょうか?? APIは価格comの商品検索です。 http://apiblog.kakaku.com/KakakuItemSearchV1.0.html プログラムの内容は、簡単に書きますが +++++++++++++++++++++++++++++++++++ $keyword = $_GET['Keyword']; $url = "​http://api.kakaku.com/Ver1/ItemSearch.asp?Keyword=".$keyword."CategoryGroup=pc&ResultSet=medium&SortOrder=pricerank&PageNum=1"; $a = simplexml_load_file($url) or die("XMLパースエラー"); echo "検索結果".$a->NumOfResult."件"; foreach ($a->Item as $b){ echo "製品名".$b->ProductName ; } +++++++++++++++++++++++++++++++++++ です。 これで最初の5件は表示されるのですが、ここから「次ページ」「前ページ」のリンクを出すにはどのようにするのでしょうか? ご返答よろしくお願いします。

    • 締切済み
    • PHP
  • 食べログの並び順の「標準」って何の順番なのでしょう

    食べログの並び順の「標準」って何の順番なのでしょうか? 点数ではないですよね? http://tabelog.com/keywords/%E3%83%91%E3%82%B9%E3%82%BF%E3%83%A9%E3%83%B3%E3%83%81/tokyo/A1307/

  • 関数の作り方(初心者です)

    バブルソートをするプログラムを作っています。 以下の部分を関数として、作って挿入したいのですがどのようにすれば 読み出すことができるのでしょうか。 { int a,b,c,d; float e,f; a=year[l+1] year[l+1]=year[l] year[l]=a b=month[l+1] month[l+1]=month[l] month[l]=a c=day[l+1] day[l+1]=day[l] day[l]=c d=code[l+1] [l+1]=code[l] code[l]=d e=latitude[l+1] [l+1]=latitude[l] latitude[l]=d f=longitude[l+1] [l+1]=longitude[l] longitude[l]=f }

  • ファイル入力のエラー

    以下のファイルを配列に読み込むプログラムを作っています。 1987 1100 12 23 2.467164 0.75153 1989 1202 12 31 2.456249 0.72896 1990 1204 9 28 2.484802 0.763903 1991 1206 11 26 2.520005 0.750182 1985 1207 9 26 2.499319 0.749116 以下の通りプログラムを組んでみました。 コンパイルしたところ、出力はされませんでした。 エラーも出ていないので、入力、出力などどこが悪いのかわかりません。 ほとんど初心者です。間違いが分かる方、よろしくお願いします。 #include<stdio.h> #define SIZE 5 main() { int a, b, c, d, i; static int year[SIZE],month[SIZE],day[SIZE],code[SIZE];   double e, f; static double latitude[SIZE],longitude[SIZE]; FILE *fp; fp=fopen("c\distance.dat","r"); while((fscanf(fp,"%d%d%d%d%lf%lf",&a,&b,&c,&d,&e,&f)) !=EOF) { year[i]=a; month[i]=b; day[i]=c; code[i]=d; latitude[i]=e; longitude[i]=f; i++; printf("%13d%8d%8d%8d%9.6lf%9.6lf\n",&a,&b,&c,&d,&e,&f); } fclose(fp); return(0); }

  • Google Map APIの利用について(URLを表示したい)

    Google mapのAPIを利用しているのですが、http://maps.google.co.jp/の[このページのリンク]みたいに表示しているマップの位置を記憶したURL[http://maps.google.co.jp/maps?f=q&hl=ja&geocode=&q=%E5%92%8C%E6%AD%8C%E5%B1%B1%E7%9C%8C&ie=UTF8&z=9]みたいなものを作ることはできないでしょうか? 「○○の地図」というリンクを貼ったとして、クリックすると該当のマップへ(サイト内のGoogle map APIへ)ジャンプしたいのですが、全くわからず。。お願いします!

    • 締切済み
    • PHP
  • excel 2つの条件(続き)

    ​http://okwave.jp/qa5054165.html​ の続きですが、    A   B  C  D  E  F   G 1  あ   3  22    4  15  ? 2  い   4  15    4  10  ? 3  う   2  10 4  え   4  10 E1に=LARGE(B1:B4,1) E2に=LARGE(B1:B4,2) F1とF2に{=MOD(LARGE(B1:B4*(MAX(C1:C4)+1)+C1:C4,ROW(B1:B4)),MAX(C1:C4)+1)} をいれました、画像のようにG1とG2に対応したA列を表示させるにはどうすれば良いでしょうか? よろしくお願いします。 

  • google maps で、javscriptを使わずに、複数のマーカを表示したい。

    Google maps で、一つの地図に複数のマーカを、簡単に表示する方法を教えて下さい。 下記URLの地図に、3つのマーカを表示させたいと思っています。 http://maps.google.com/maps?hl=ja&q=%E5%85%83%E7%B4%8B%E5%88%A5&ie=UTF8&ll=44.325199,143.377376&spn=0.010837,0.028367&z=15 google maps api で、javascriptを使えばできるということは知っているのですが、 特に動的に表示させたいわけでもないので、手軽にできないかと思っています。 (プログラミングは経験していますが、javascriptは慣れていないので、極力避けたいという気持もあります) どなたか教えて頂けないでしょうか。

  • excel 2つの条件(第三弾)

    http://okwave.jp/qa5057168.html の更に続きですが、    A   B   C  D  E   F  G 1  あ   3  22    4  15  ? 2  い   4  15    4  15  ? 3  う   2  10    4  10  ? 4  え   4  10 5  お   4  15 想定していなかった5行目を追加しました。 E1に=LARGE(B1:B5,1) E2に=LARGE(B1:B5,2) E3に=LARGE(B1:B5,3) F1とF2とF3に{=MOD(LARGE(B1:B5*(MAX(C1:C5)+1)+C1:C5,ROW(B1:B5)),MAX(C1:C5)+1)} G1に=INDEX($A$1:$A$5,SUMPRODUCT((B$1:B$5=E1)*(C$1:C$5=F1)*ROW(A$1:A$5)))を入れましたがB列とC列が同じ組み合わせがある場合ではエラーが出てしまいます。 G1に『い』、G2に『お』を表示させる事は可能でしょうか? 重ね重ね申し訳有りませんがわかる方おりましたらよろしくお願いします。

  • GoogleMapsAPIv3でXMLを取得(2)

    以前も一度質問しましたが、新たな障壁が出てきたので同じタイトルで質問させていただきます。 Google Maps API v3でサーバー上にあるXMLファイルを利用して、マーカーを出現させようと思います。 現在以下のようなコードで挑戦しています。 <head> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> <title>Google Maps JavaScript API v3</title> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> <script type="text/javascript" src="util.js"></script> <script type="text/javascript"> function initialize() { var myLatlng = new google.maps.LatLng(35.682956, 139.727554); var myOptions = { zoom: 12, center: myLatlng, mapTypeId: google.maps.MapTypeId.ROADMAP } var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); downloadUrl("http://ja.xml", function(data) { var markers = data.getElementsByTagName("Event"); for (var i = 0; i < markers.length; i++) { var lat = parseFloat(markers[i].getElementsByTagName("Latitude")[0].childNodes[0].nodeValue); var lng = parseFloat(markers[i].getElementsByTagName("Longitude")[0].childNodes[0].nodeValue); lat = lat - lat * 0.00010695 + lng * 0.000017464 + 0.0046017; lng = lng - lat * 0.000046038 - lng * 0.000083043 + 0.010040; var latlng = new google.maps.LatLng(lat,lng); var marker = new google.maps.Marker({position: latlng, map: map}); } }); } </script> </head> このコードの場合、同ディレクトリ、または同サーバーにあるXMLを読み込むとうまく動作したのですが、Web上で公開されているようなXMLだとうまく表示されませんでした。 downloadUrlというのは同サーバーの物しか対応していないのでしょうか。 それとも他に原因が考えられますか? ご存じの方いらっしゃいましたらよろしくお願い致します。