• 締切済み

複数のサイトからXLMを読み込みひとつのページにする

XLM・JavaScript・XSL・PHP・Perlなどすべて初心者です。(基礎的な質問で恐縮です) 現在、JavaScriptをつかってサイトの構築をしております。複数のサイト(Amazon/Yahooなど)からXMLをリクエストしてそれを一つのページにしようとしております。XMLをHTMLにパースするのはいろんなところに情報があるのですが、複数のサイトからの複数のXMLデータを読み込み一つのページにまとめるやりかたというのはまったく情報がありません。具体的にはどのようにしたらいいのでしょうか?PHP/Perlというのは複数のXMLデータを読み込むことは可能なのでしょうか?(もし可能な場合は簡単なキーワードでも入れていただけると幸いです。ググッて自分で勉強します)

  • XML
  • 回答数1
  • ありがとう数1

みんなの回答

  • ggaogg
  • ベストアンサー率43% (38/88)
回答No.1

RSS Atom などで検索してみて下さい。 きっとhuman_reportさんの探している情報が見つかるはずです。 私も今日調べたばかりなのですが、まだ正式な仕様でない(Atomのバージョンは0.3)ので、とりあえずもう少し待って仕様が固まったら勉強しようかと思っていますが・・。 まだ情報少ないですし。

human_report
質問者

お礼

ありがとうございます。(お礼遅くなってすみません・・・・・) なるほど、RSSでデータを統合するというのはいいですね。ただRSS形式でGoogleなどデータを配信してないサイトも一部あるんです・・・・(涙)やはり複数のサイトからのXMLデータをまとめるという形でないといけないようです。他になにかいいアイディアありましたらご教授ください。

関連するQ&A

  • Ajax.RequestでXMLデータをパース

    お世話になります。 Ajax.Requestをして、返ってくるデータがXMLなのですが このXMLをパースして表示したいのですが 何か方法はありませんでしょうか? もしかしたら簡単なことなのかもしれませんが ご存知の方がいらっしゃいましたら ご教授よろしくお願いいたします。 ajax.js //////////// function exec(fname,dispArea) { var httpObj = new Ajax.Request(fname, { method:'GET', onSuccess:function(req) { var text = req.responseText; $(dispArea).innerHTML = text; } } ); } ///////////test.html <script language="javascript" type="text/javascript" src="prototype.js"></script> <script language="javascript" type="text/javascript" src="scriptaculous.js"></script> <script language="javascript" type="text/javascript" src="ajax.js"></script> <span id="disp">exec('hoge.xml', 'disp');</script></span> //////////// hoge.xml <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="hoge.xsl" ?> <top> <list> <row>テスト1</row> </list> <list> <row>テスト2</row> </list> <list> <row>テスト3</row> </list> </top> //////////// hoge.xsl <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="top"> <html><title>XMLパース</title> <body> <xsl:for-each select="list"> <xsl:value-of select="row" /> </xsl:for-each> </body> </html> </xsl:template> </xsl:stylesheet>

  • XSLTでの複数のXML検索結果を統合するには?

    初歩的な質問でごめんなさい。 XSLTを使って複数のXMLを検索した結果を、表示したいのですが、結果を1つのテーブルに統合するにはどうすればいいのでしょう。 次のスクリプトを基に作りたいのですが。 function search (keyword) { node = thexsl.XMLDocument.selectSingleNode("//xsl:for-each"); if(keyword) node.setAttribute("select", "//data[contains(word, '" + keyword + "')]"); else node.setAttribute("select", "//data"); str = thexml.XMLDocument.transformNode(thexsl.XMLDocument); view1.innerHTML = str; } 次のファイルを利用して検索したいです、 <xml id="thexml1" src="db1.xml"></xml> <xml id="thexml2" src="db2.xml"></xml> <xml id="thexml3" src="db3.xml"></xml> <xml id="thexsl" src="db.xsl"></xml> xmlファイルの内容 <?xml version="1.0" encoding="utf-8" ?> <dataroot xml:lang="ja"> <data>・・・</data>  ・・・ </dataroot> xslファイルの内容 <?xml version="1.0" encoding="utf-8" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="/"> <table> <tr>・・・</tr> <xsl:for-each select="//data"> <tr>・・・</tr> </xsl:for-each> </table> </xsl:template> </xsl:stylesheet> よろしくお願いします。

    • 締切済み
    • XML
  • Ajax.Updaterでjavascriptを記述する方法

    お世話になります。 prototype.jsを使って開発をしております。 Ajax.UpdaterにevalScripts: trueを設定し request.responseTextにjavascriptが記述されたものを返しているのですが javascriptに<(小なり)、>(大なり)があると &gt;&ltに変換されてしまい、javascriptが正常に動作しません。 なければ正常に動作します。 恐らくはrequest.responseTextに返す前にPHPで $xsl = new DomDocument(); $xsl->load("hoge.xsl"); $processor = new xsltprocessor(); $processor->importStyleSheet($xsl); echo $processor->transformToXML($xml); とパースをかけていることが原因だと思うのですが 何か対処法はありませんでしょうか? どうぞよろしくお願い致します。 xslに書いてあるjavascriptの内容 <script language="javascript" type="text/javascript"> // <![CDATA[ test = function(hoge){ if(hoge > 3){ alert("over"); } }; // ]]> </script> http://oshiete1.goo.ne.jp/kotaeru.php3?q=1875880 を参考にCDATAをscriptの中に書いたり、外に書いたりと試しましたが ダメでした。当然か。。。 <script type="text/javascript" src="./hoge.js"></script> という風に外部ファイルとしてなら恐らく上手くいくと思うのですが・・・。

  • ショッピングサイトの作り方(初心者です)

    PHP PERL JAVASCRIPTを使ってショッピングサイトを作らなければならないのですが、指定はデータ入力画面はPHP データベースはPERL 登録したデータ表示はPHP 入力チェックはJAVASCRIPTで作らなかればなりません。 どこにJAVASCRIPTを入れるだとかそもそもの構造がまったく見えず困っています。

    • 締切済み
    • PHP
  • 複数のxmlファイルの合体

    複数のxmlファイルの合体 XML、JavaScriptのど素人です。諸先輩方のアドバイスを乞いたくよろしくお願いいたします。 XML本のサンプルプログラムで、XML/XSL/JavaScript(html内に記述されている)を用いた 検索プログラムを以下の理由で改良したいと考えています。 <books> <book> <data1>データ</data1> <data2>データ</data2> <data3>データ</data3> </book> </books> の構造を持つxmlファイルがあったとして データの更新が頻繁に行われるのは<data3>要素だけなので、 <books> <book> <data1>データ</data1> <data2>データ</data2> </book> </books> -----xml1 <books> <book> <data3>データ</data3> </book> </books> -----xml2 のように2ファイルに分離し、 JavaScriptの検索プログラムで、<data1>~<data3>要素から条件にあったデータを抽出したいのですが どうすればいいのでしょうか?よろしくお願いします。

    • 締切済み
    • XML
  • 複数ページでのPOST受け方

    PHPでページを作るために今勉強中なのですが。 複数のページでPOST送信されたデータを、最後のページで呼び出して演算する方法・説明等が載っているサイトなどを教えていただけますか? またその際にユーザーから入力されたデータのログを後で管理者が引き出すことは出来るのでしょうか? 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • phpでサイト構築していて困っています

    ホットペッパーAPIを使ってサイトを作っています。まだ知識が浅く分からないことが多いのですが、下記について教えて下さい。 <?php //サイト設定 $site['title'] = "APIサンプルサイト"; $site['url'] = "http://●●.jp"; $site['mojicode'] = "Shift_JIS"; $site['info'] = "ホットペッパービューティーAPIのサンプルです"; //XMLデータ取得用ベースURL $req = "http://webservice.recruit.co.jp/beauty/salon/v1/"; //リクエストパラメータ設定 $name = "◎◎"; $name_kana = "××"; //XMLデータ取得用リクエストURL生成 $req .= "?name=".$name."&name_kana=".$name_kana; $xml = simplexml_load_file($req) or die("XMLパースエラー"); //HTML出力 echo <<<HTML <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>{$site['title']}</title> </head> <body> <h1>{$site['title']}</h1> <hr> {$site['info']} <hr> {$xml->salon->name}<br> {$xml->salon->name_kana}<br> </body> </html> HTML; ?> ------------------------------------ (APIキーを省略しています) 上記の様に作成したページに <?php include_once '../include/commons.php'; ?> を入れて別のphpファイルを参照したいのですが、どこに入れれば良いのでしょうか??もしくはこの文章を入れることはできないのでしょうか。 最終的に「../include/commons.php」を参照(読み込み?)できれば良いので、方法を教えて下さい。 昨日からずっと入れる場所をいろいろ変えて試してみましたが、うまくいきません。APIがからんでない別のphp文書の文頭に入れると動作するのですが・・。 質問の仕方が未熟で申し訳ありませんが、宜しくお願いします。

    • ベストアンサー
    • PHP
  • 複数の検索エンジンの結果を一つのページに表示するようなサイトを作りたい

    複数の検索エンジンの結果を一つのページに表示するようなサイトを作りたいのですが、どうすればよいでしょうか? 何かそれに関する情報というか、そんなのが掲載されているサイト等、ご存知の方がもしいれば教えてください。 例えば、フォームからキーワード検索ボタンを押したら、そのページに、yahooとgoogleの検索結果が表示されるような、イメージです。

    • ベストアンサー
    • PHP
  • 複数リンクをしたいのですが表示されない

    複数リンクしたいページがあったので色々試みました こちらのサイトを参考にして http://www6.airnet.ne.jp/manyo/xml/index.html Xlinkの単純リンク・拡張リンクを試したのですがリンクが全くされないで、普通に文字が並んでるように表示されました また http://questionbox.jp.msn.com/qa1821124.html こちらのやり方で試みてもリンクされていない状態でした。 XMLの書き方がまずかったのか、別の理由でリンク表示されないのかわかりませんがどうしたら複数リンクができるでしょうか? 大体こんな感じに書きました ↓XML <?xml version="1.0" encoding="Shift_JIS"?> <?xml-stylesheet type="text/xsl" href="anime1.xsl"?> <iti> <sait> <name>世界の発展</name> <gai> <link url="http://***">イギリス</link> <link url="http://***">フランス</link> <link url="http://***">イタリア</link> </gai> </sait> ↓XSL <?xml version="1.0" encoding="Shift_JIS"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <head> <title>テスト</title> </head> <body> <div align="center"> <xsl:apply-templates select="iti" /> </div> </body> </html> </xsl:template> <xsl:template match="iti"> <br /> <br /> <h1>テスト</h1> <xsl:apply-templates select="sait" /> <br /> <br /> </xsl:template> <xsl:template match="sait"> <table border="1" bgcolor="#006fdd" width="700"> <tr> <th><xsl:value-of select="name" /></th> </tr><tr> <td><xsl:value-of select="gai" /></tr> </table> <br /> </xsl:template> <xsl:template match="link" > <a> <xsl:attribute name="href"> <xsl:value-of select="@url" /> </xsl:attribute> <xsl:value-of select="text()" /> </a> </xsl:template> </xsl:stylesheet> どこら辺が間違ってますでしょうか?

    • ベストアンサー
    • XML
  • PHPでXMLを表示させたときの外部エンティティの挙動に関して

    XML+XSLでHTMLを生成する上で、PHPを経由する場合と、しない場合で、 外部エンティティの挙動が異なっていて悩んでいます。 具体的には、  ・XML+XSL+外部エンティティ → 意図通りHTML生成  ・PHP+XML+XSL+外部エンティティ → 意図通りHTML生成されない(外部エンティティが生成されない) こういうものなのでしょうか? もし、こういう仕様であれば、なにか対応策はあるのでしょうか? ソースと生成されたHTMLは下記の通りです。 【Though.php】 <?php header( 'Content-Type: text/html; charset=UTF-8' ); $xml = new DomDocument(); $xml->load( 'MainData.xml' ); $xsl = new DomDocument(); $xsl->load('Main.xsl'); $processor = new xsltprocessor(); $processor->importStyleSheet($xsl); echo $processor->transformToXML($xml); ?> 【MainData.xml】 <?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type="text/xsl" href="Main.xsl" ?> <!DOCTYPE books [ <!ENTITY sub_data SYSTEM "SubData.xml"> ]> <root> <node1>TEST1</node1> <node2>&sub_data;</node2> </root> 【Main.xsl】 <?xml version = "1.0" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="/"> <html> <xsl:apply-templates /> </html> </xsl:template> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates /> </xsl:copy> </xsl:template> </xsl:stylesheet> 【SubData.xml】 <?xml version="1.0" encoding="utf-8"?> <sub_data>Test2</sub_data> 【XML+XSL+外部エンティティで生成されるHTML(ブラウザで直接MainData.xmlを開いた場合)】 <html><?xml-stylesheet type="text/xsl" href="Main.xsl" ><root><node1>TEST1</node1><node2><sub_data>Test2</sub_data></node2></root></html> 【PHP+XML+XSL+外部エンティティで生成されるHTML(ブラウザでThrough.phpを開いた場合)】 <html> <?xml-stylesheet type="text/xsl" href="Main.xsl" ><root> <node1>TEST1</node1> <node2></node2>    //←node2の中がカラッポになっている。。。 </root> </html> ※生成されたHTMLは、IE8の開発者ツールで確認しています。 XMLやPHPは最近やり始めたのでトンチンカンなことを言ってるかもしれませんが、よろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう