• ベストアンサー

jQueryのloadメソッドは外部XMLは読み込めないのでしょうか?

jQueryのloadメソッドは外部XMLは読み込めないのでしょうか? タグが<aaa></aaa>となっているところの文字を抽出したいのですが外部にあるXMLは読み込めないものでしょうか? $("#my1").load( "http://server.com/hoge.xml .aaa" ); テキストファイルでタグを書くと読み込みが出来るのですが、なぜかXMLにするとうんともすんとも動きません

  • mr-r00
  • お礼率93% (480/516)
  • AJAX
  • 回答数1
  • ありがとう数6

質問者が選んだベストアンサー

  • ベストアンサー
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

QueryのloadメソッドはHTMLを読み込み、DOMに挿入するものです。 XMLの読み込みは$.ajax、$.get、$.postで行い、XMLのノード取得には、 セレクターにXpath表現が使用できます(最新のjQueryにする事!) ↓で、できませんか $.get("http://server.com/hoge.xml",function(xmldata){ $("#my1").append($("//aaa",$(this))); });

mr-r00
質問者

お礼

出来ましたー! 最新版でやってみると自分で思ったとおりに表示されました。 ありがとうございます!

関連するQ&A

  • aspxのページにjQueryのloadメソッドを使ってテキストボック

    aspxのページにjQueryのloadメソッドを使ってテキストボックスに値を反映させることは不可能でしょうか? テキストボックスはこんな感じです。 <asp:TextBox ID="TextBox3" runat="server" Height="72px" TextMode="MultiLine" Width="651px"></asp:TextBox> サーバ上に存在しているテキストファイルのタグを解析してテキストボックスに反映させたいのですが・・・動いてくれません。 $(document).ready(function (){ $("#TextBox3").load("load.txt .div1"); }); そもそも不可能なことをしているのでしょうか?

    • ベストアンサー
    • AJAX
  • load()メソッドは、何故サーバ上でしか使えない

    jQueryのload()メソッドは、 何故、サーバ上でしか使えないのでしょうか? もし、ローカル環境で使おうとした場合に 不都合なことでもあるのでしょうか?

  • jQueryでloadメソッドを使用しているのですがコードの効率化につ

    jQueryでloadメソッドを使用しているのですがコードの効率化についてヒントをください。 こんなコードです。 $("#load1").load("A.html .flag1", function(Text, status) {   if ($("#load1").text() == "A") $("#load1").css({backgroundColor:"red"});  else if ($("#load1").text() == "B") $("#load1").css({backgroundColor:"yellow"}); else if ($("#load1").text() == "C") $("#load1").css({backgroundColor:"blue"}); }); $("#load2").load("B.html .flag1", function(Text, status) {   if ($("#load1").text() == "A") $("#load1").css({backgroundColor:"red"});  else if ($("#load1").text() == "B") $("#load1").css({backgroundColor:"yellow"}); else if ($("#load1").text() == "C") $("#load1").css({backgroundColor:"blue"}); }); $("#load3").load("C.html .flag1", function(Text, status) {   if ($("#load1").text() == "A") $("#load1").css({backgroundColor:"red"});  else if ($("#load1").text() == "B") $("#load1").css({backgroundColor:"yellow"}); else if ($("#load1").text() == "C") $("#load1").css({backgroundColor:"blue"}); }); ・ ・ ・ 指定している要素とloadするURL以外はコードが全く一緒なんですよね これをどうにか効率化出来ないでしょうか?

  • 初歩的な質問なんですが、jqueryの .load( url +セレク

    初歩的な質問なんですが、jqueryの .load( url +セレクタ ) メソッドで同じドメインの外部ファイルを読み込む際のURLを変数で扱う方法はありませんか?

    • ベストアンサー
    • AJAX
  • jQueryの.loadで読み込んだphpについて

    現状、以下のディレクトリ構造です。 /hoge/aaa/index.html(★) /hoge/bbb/index.html(★) /hoge/ccc/index.html(★) /hoge/test.php ★印のhtml内部でそれぞれ jQuery("#target").load("/hoge/date.php"); と書いてphpを読み込み、 出力結果をそれぞれのhtmlにある#target内表示させようとしています。 一方、test.php内部ではURLに /aaa/があったら、 /bbb/があったら、 /ccc/があったら、 「■■■■■」するという処理を書いて、応じた値を表示しようと考えています。 ここで問題が発生するのですが、 test.php内部で、 $pageurl = $_SERVER["REQUEST_URI"]; こう記述して値を取っても、phpが置かれている場所である 「/hoge/test.php」 を取得するだけで、htmlが置かれているパスは取得できませんでした。 .loadした場合のphpでは、 読み込み先のhtmlのURLなどをphp側で取得させる事はできないのでしょうか。 うまく説明できていないかもしれませんが、 ご助言いただけますとありがたいです。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • jQueryでxmlデータ取得について

    jQueryでxmlのデータを取得しました。 jsで宣言した変数データがあって、 その変数のデータと xmlのタグ(ノード)が一致していた場合、 そのxmlデータの値を返したいと考えています。 xmlは以下の感じです。 タグ名はすべて異なりますが、順番に並んでいます。 <data1>aaa</data1> <data2>bbb</data2> <data3>ccc</data3> 例としては jsでの変数の値がdata1の場合は、 xmlの<data1>の値を取得したいんです。 jsでの変数の値がdata2の場合は、 xmlの<data2>の値を取得したいんです。 そんな事ってできますか? 初心者なもので、とんちんかんな質問かもしれませんが どうか、宜しくお願いいたします。

    • ベストアンサー
    • AJAX
  • jQueryでクロスドメインは可能らしいですが・・・

    jQueryでクロスドメインは可能らしいですが・・・ 通常のライブラリだけでも可能なものでしょうか? ただただ自分で管理しているサーバのページ上を同期するのと似たような感じでloadメソッドを使用したいと考えています。loadメソッドはクロスドメインで可能でしょうか?

  • jQueryの戻り値がうまくいかない・・・

    jQueryでXMLを読み込んでパースした値を戻り値として返す関数を作っているのですが、なぜか動作しません。 すみませんがどこがいけないのか教えていただけないでしょうか? -- JS ---------------------- function getValueXML(){   var value = "初期値";   jQuery.ajax({     url: "/text.xml",     type: 'get',     dataType: 'xml',     timeout: 1000,     success: parse_suc,     error: parse_err   });   function parse_suc(xml){    value = $(xml).find("hoge").text();   }   function parse_err(){    alert("XMLの取得に失敗しました");   }   return value; } -- test.xml --------------------- <?xml version="1.0" encoding="UTF-8"?> <root>   <hoge>テスト</hoge> </root> このgetValueXML関数を実行すると戻り値には"初期値"が返ってきます。 試しにparse_suc関数を以下のようにしてみたら"テスト"がアラート表示されました。 つまりparse_suc関数内ではXMLのパースがうまくいっているようなのです。 function parse_suc(xml){   value = $(xml).find("hoge").text();   alert(value); } しかしparse_suc関数を出るとvalueにはその値が引き継がれません。 valueのスコープがjQueryだとどういう風になっているのかよくわからなく、ずっと悩んでいます。 お手数ですがおわかりの方がいましたらご説明頂ければと思います。

  • JQueryでxmlのデータを取得する。

    以下のようになっているxmlのデータがあります。 --------------------- <item> <name1>0</name1> <name2>1</name2> <name3>0</name3> </item> --------------------- <item>~</item>の中の 子ノードのタグ名とテキストデータをJQueryを使って取得したいと考えています。 上記のように、<name1><name2><name3> とタグ名がバラバラなので 配列で取得したいのですが。やり方がわかりません。 どなたかご教授ください。

    • ベストアンサー
    • AJAX
  • jQueryでXMLを操作

    jQueryでXMLを操作 最近jQueryを勉強しはじめました。 jQueryでXMLを読み込んで、item val="new"を含んだデータのみ<ul></ul>内に表示したいのですが うまくいきません。 ご教授願います。 また、こういったjQueryの使い方に関する、お勧めの本やページ等ございましたら 教えてください。宜しくお願い致します。 -------------------------XML Data------------------------- <data> <item val="new"> <link>01.html</link> <name>ほげ田 ほげ太</name > <photo>dummy.jpg</photo> </item> <item val="new"> <link>02.html</link> <name>ほげ田 ほげ子</name > <photo>dummy.jpg</photo> </item> <item val="new"> <link>03.html</link> <name>ほげ山 ほげ太</name > <photo>dummy.jpg</photo> </item> <item> <link>04.html</link> <name>ほげ山 ほげ子</name > <photo>dummy.jpg</photo> </item> </data> -------------------------JavaScript------------------------- $(function(){ $.ajax({ url: 'doctors/data.xml', dataType: 'xml', timeout: 1000, error: function(){ alert("xmlファイルの読み込みに失敗しました"); }, success : function(data){ $("item",data).each(function(){ if($("item",this).attr("val") == "new"){ $(".column").append('<li><a href="'+$("link",this).text()+'"><img src="image/'+$("photo",this).text()+'" alt="'+$("name",this).text()+'" title="'+$("name",this).text()+'"></a></li>'); } }) } }) $("li.noJavaScript").remove(); }) -------------------------HTML------------------------- <div id="wrapper"> <ul class="column"> <li class="noJavaScript">javaScriptを有効にしてください。</li> </ul> </div>

専門家に質問してみよう