• 締切済み

Yahoo!ウィジェットのgetElementsByTagName

Yahoo!ウィジェットについて質問です。 getElementsByTagNameで取得したタグのlenghtはかえってくるのですが, tagNameのデータを読み込もうすると、(TypeError: unit[0] has no properties)になります。 Yahoo!ウィジェットのgetElementsByTagNameは、通常のJavaScriptとは違うのでしょうか? コードは以下の通りです。 ■JavaScript //XMLHTTPRequest var request = new XMLHttpRequest(); request.autoRedirect = false; request.open( "GET", "hoge.xml", true ); request.send(); request.onreadystatechange = myStatusProc; //XMLデータの表示 function myStatusProc(){ if ( this.readyState == 4 ){ var XMLObj = request.responseXML; var unit = XMLObj.getElementsByTagName("unit"); var a = unit[0].getElementsByTagName("a")[0].firstChild.nodeValue; print(a); } } ■XML <root> <unit> <a>test</a> </unit> <unit> <a>test</a> </unit> <unit> <a>test</a> </unit> </root> すみません。よろしくお願いします。

  • AJAX
  • 回答数1
  • ありがとう数38

みんなの回答

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

request.send(); は、request.send(""); のはず。 これは投稿時のコピーミスですよね。

radiguet
質問者

お礼

回答あいがとうございます。 申し訳ないです。解決しました。

関連するQ&A

  • getElementsByTagNameが使えない

    javascriptで下記コードを書いて動的にmetaタグを作成しようとしたところ うまくいきませんでした。調べていたところgetElementsByTagNameは safariではうまく動かないという記述があったのですが この関数に替わるものもしくはその他の方法はありますでしょうか。 var meta = document.createElement("meta"); meta.setAttribute("name", "ad-banner"); meta.setAttribute("content","test-id=xxxxx"); document.getElementsByTagName("head")[0].appendChild(meta);

  • responseTextについて

    ---XMLHttpRequest--- javascriptでresponseXMLで取得できないことがあり、responseTextで 取得できたのですが、取得したtextがXMLの形式なんです。 responseTextで取得したモノをXMLとして扱うにはどうしたら よろしいのでしょうか?

  • CGIを呼び出した場合の戻り値をDOMオブジェクトにする

    var rtn; var obj = new XMLHttpRequest(); obj.open("GET","/test.xml"); obj.setRequestHeader(~略~); obj.send(""); obj.onreadystatechange = function( ){   if(obj.readyState == 4){     rtn = obj.responseXML);   } } この場合のrtnの値はtext.xmlのDOMオブジェクトとなりますが、 これを、 var obj = new XMLHttpRequest(); obj.open("GET","/test.cgi"); obj.send(""); とし、cgiからの戻り値としてDOMオブジェクトを受けることは可能ですか? やはりcgiからプログラムを通じてxmlファイルを作成し、 それをもう一度、 obj.open("GET","/test.xml"); obj.send(""); として読み込むしかないでしょうか?

  • ActiveXObjectで取得したXMLの解析処理ができない

    Ajaxの勉強をしているのですが困っています。 ActiveXObjectで取得したXMLの解析処理ができないのです。 1.JavaScriptで新たにActiveXObjectのオブジェクトを作成 (例)var obj = ActiveXObject(Msxml2.XMLHTTP); 2.上記オブジェクトに対しopen(),send()を行う。 (例)obj.open(callback,url,false); 3.サーバーにてリクエスト受信後、JSP上に記述したXMLを送信。 4.上記オブジェクトに対しresponseXMLを行う。 (例)var doc = obj.responseXML; 5.XMLの要素を取得 (例)doc.getElementsByTagName("name"); 4の結果何らかのオブジェクトは取れているようなのです(alertで表示してみると"[Object]"と表示される。)が、実際に5でXML中の要素を取ろうとすると何も取得できません。一方4をobj.responseText;とすると、(alertで表示してみると文字化けしていますがXMLの)内容が取得できます。 なぜレスポンスをXMLにして取得した場合、情報を取得できないのでしょうか?ご教授いただけませんでしょうか? よろしくお願いいたします。

    • 締切済み
    • PHP
  • Ajax:getElementsByTagNameで取得できない

    Ajaxでプログラミングをしております。 サーバに問い合わせた答えをXMLで返しております。 Ajaxで問い合わせて、 alert(req.responseText); とすれば、XMLが画面に表示されて、答えが返っていることを確認できています。 ====XMLデータは以下=== <?xml version="1.0" encoding="utf-8" ?> - <results> - <result> <x>139.1748046875</x> <y>37.26530995561875</y> <kiji>トラックバックテスト</kiji> <url>http://blog.livedoor.jp/***/archives/50669333.html</url> <contents>test trackbackAAAAAAAAAAAAAAAAAAAA</contents> <btitle>必勝!株式投資!</btitle> <date>10.24.06</date> </result> - <result> <x>139.1748046875</x> <y>37.26530995561875</y> <kiji>下げシグナル</kiji> <url>http://blog.livedoor.jp/***/archives/50533401.html</url> <contents>カブログへの清き一票よろしくお願いします </contents> <btitle>必勝!株式投資!</btitle> <date>2006.10.24</date> </result> </results> ====ここまで===== XMLの<result>タグでブロックごとに分解し、その分解されたブロックから <X>の値、<contents>の値を取ろうとしております。 ためしに、 var result = req.responseXML.getElementsByTagName('result'); alert(result.length); とやって、<result>タグで2ブロックにきれているか、確かめたのですが、 0と返ってきます。 何かやり方がわるいのでしょうか? サーバプログラム、クライアントプログラムとも、UTF-8でやってます。 IEは6.0です。 よろしくお願いします。

  • getElementsByTagNameのタグの個数を調べるには

    javascriptでxmlデータを扱ったページを作成しています。 以下のようなデータです。 getElementsByTagNameでitemタグの下にいくつタグがあるかを 調べるにはどうしたらいいのですか? getElementsByTagNameにlengthは使えないので。。 データ: <markers> <item No="001"> <id>A01</id> <shu1>you</shu1> <name>aiueo</name> <price>1000</price> <md>1</md> <as>2</as> <imagepass>bbb.gif</imagepass> <shousaiaddr>http://www.yahoo.co.jp/</shousaiaddr> </item>     <item No="002">      ・・・

  • XMLの空白要素をJavascriptのif文で条件分けする

    JavascriptもXMLも始めたばかりの者です。 分からないことがあり、皆様にご教授頂ければと思い投稿しました。 XMLで生成したファイルから各要素を取り出してHTMLに置き換えるスクリプトをJavascriptで作ろうと思います。 ~XMLファイル~宣言省略 <links> <link> <url>http://www.○○○.com/</url> <title>○○○~</title> <ban>http://www.○○○.com/XX.gif</ban> </link> <link> <url>http://www.×××.com/</url> <title>×××~</title> <ban></ban>//←画像データ空欄 </link> </links> ~Javascript~前後省略 var a = obj.responseXML; var xmlDoc = a.documentElement; var links = xmlDoc.getElementById("links").length; for(var i=0; i<links; i++) { var link = xmlDoc.getElementsByTagName("link")[i].firstChild.nodeValue; var title = xmlDoc.getElementsByTagName("title")[i].firstChild.nodeValue; var image = xmlDoc.getElementsByTagName("image")[i].firstChild.nodeValue; var html = Html(link,title,image); } function Html(link,title,image) { ~中略~ if(image != ""){ html += '<a href="' + link + '"><img src="' + image + '" alt="' + title + '" /></a>'; } return html; } この後、html内の「<div id="html"></div>」に表示させるのですが、function Html(~)では、画像の有無は絶対条件ではない為if文で条件分けしています。 ですが、この「if(image != "")」で「has no properties」エラ-になります。 ちなみに空欄だった画像データ欄に文字列を入れるときちんと動作します。 XMLタグに文字列が入らない場合、配列には""(空)が返されないのでしょうか? 何か良い方法はありましたら、よろしくご教授くださいませ。 よろしくお願いいたします。

    • ベストアンサー
    • XML
  • 配列内のnodeValueがとれない

    XMLをAjax経由で受け取り、JavaScript内で処理をしたのいのですが、 XML要素にうまくアクセスできません。 具体的には、下記のXMLの、 <jcity></jcity>のタグを繰り返しでalert表示をさせたい (alert(r.childNodes[0].nodeValue))の部分で、、 何も表示されません。 原因などわかればご教授いただけますでしょうか。 よろしくお願いいたします。 ------以下、XML------------------------------- <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <items> <item> <jcity>千代田区</jcity> <jlocal>千代田</jlocal> <jpref>東京都</jpref> <pref_cd>13</pref_cd> <zip_cd>1000001</zip_cd> </item> </items> ------以下、JavaScript------------------------------- function rssFeed() { var myAjax = new Ajax.Request( 'http://myserver.co.jp/modules/api/rssfeed.class.php', { method: 'GET', onSuccess: showResponse, onFailure: errorFunc } ); } function showResponse(req) { r = req.responseXML; $A(r.getElementsByTagName('item')).each(function(r) { alert(r.childNodes[0].nodeValue); }); }

  • 特定のページの画像URL一覧表示をしようと思っているのですが、

    特定のページの画像URL一覧表示をしようと思っているのですが、 何が原因なのか解らず困っています。 <html> <head> <script> function load(){ var req = new XMLHttpRequest(); req.open("GET", "http://news.google.co.jp/nwshp?hl=ja&tab=wn", false); req.onreadystatechange = function(){ if(4 == req.readyState){ set_news(req.responseXML); } }; req.send(null); } function set_news(xml){ var container = document.getElementById("news"); container.innerHTML = ""; var items = xml.getElementsByTagName("img"); for(var i = 0; i < items.length; i++){ var a = document.createElement("a"); a.href = items[i].getAttribute("src"); a.innerHTML = items[i].getAttribute("src"); container.appendChild(a); } } </script> </head> <body onLoad="load();"> <div id="news"></div> </body> </html> 上記はgoogleの画像URL一覧を取得しようと思っています。 この場合、何が悪いのでしょうか? ご教示宜しくお願いいたします。

  • フォーラムなど

    ajax関連のフォーラムやQ&Aサイトでお勧めのところを教えてください。 ここ(教えて!goo)でもいいのですが、専門的なところを知っておきたいのです。 これは一例ですが、今困っているのはXMLHttpRequestでphpを呼び出して返って来たxmlを取り込みたいのですがresponseXML.documentElementがnullになってしまうことです。 これ以外にも色々質問しながら習熟していきたいと思っていますので、ホットなサイトを紹介ください。

専門家に質問してみよう