• ベストアンサー

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

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

  • AJAX
  • 回答数2
  • ありがとう数5

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

  • ベストアンサー
  • JaneDue
  • ベストアンサー率75% (263/350)
回答No.2

IE は textContent ダメでしたね。すみませんが以下に訂正。 alert( $item_s[i].tagName +"===>"+ $($item_s[i]).text());

mc0816
質問者

お礼

JaneDueさん 毎回、本当にありがとうございます。 IEの場合の訂正まで… ご丁寧な回答に感謝しております。 QNo.7076140で質問させていただいたものですが この時は配列で取得しようとしていたのですが QNo.7076140の段階でやり方を変更しました。 この時点で、私の四苦八苦ぶりがうかがえますね…(苦笑) でも、このご回答も大変勉強になりました。 別の機会で必ず活かします! 本当にありがとうございました。

その他の回答 (1)

  • JaneDue
  • ベストアンサー率75% (263/350)
回答No.1

//children() で子要素取得可。後は通常の配列のように $item_s[0]でアクセス可 var $item_s = $("item",xmldata).children(); //個数を取得して回して表示してみる場合 var n = $item_s.size(); for(i=0;i<n;++i){ alert( $item_s[i].tagName +"===>"+ $item_s[i].textContent ); }

mc0816
質問者

お礼

あらためて、本当にありがとうございました。 地道に勉強します。

関連するQ&A

  • 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でxmlの異なるタグ要素を取得したい。

    jQueryを最近勉強したての者です。 詳しい方、どうか教えて下さい。 HTMLにxmlのデータを読み込ませようとしています。 概略をお話しすると、 htmlファイルによって、xmlの別々の要素を取得したいのです。 やりたいメソッドは同じです。 別々の要素の中のデータによって、imgの表示/非表示を切り替えたいのです。 問題は、対象となるhtmlファイルが複数あり そのhtmlファイルによって、参照するxmlのタグが異なる事なんです。 xmlは、以下のように<shopdata>をルートノードとし、以下のような感じです。 --------------------- <?xml version="1.0" encoding="utf-8"?> <shopdata> <item> <name1>0</name1> <name2>1</name2> <name3>0</name3> </item> </shopdata> --------------------- <name*>~</name*> の中のデータは、0もしくは1なのですが 0の時はimgを表示 1の時はimgを非表示させようと考えています。 ただ<name1><name2><name3> とタグ名がバラバラなんです。 ※おしりの数字が違うだけで、規則的ではあります。 ちなみにhtmlは複数あって  a.htmlの時は→xmlの<name1>を参照  b.htmlの時は→xmlの<name2>を参照  c.htmlの時は→xmlの<name3>を参照 という感じです。 ※htmlファイル名は特に規則的ではなく、いろいろなファイル名がついています。。。 最初、考えたのは、 htmlのどこかに、id="1"と入れて、idが1の時は、<name1>の要素を取得し、 htmlのどこかに、id="2"と入れて、idが2の時は、<name2>の要素を取得し… っていうことを考えたのですが、それもどのように書いたら良いのかが分からないんです。 そもそも、そういった事は可能なのでしょうか? ちなみのhtmlのbodyタグ自体がテンプレートでできているので、 idをどこかにふるとしたら、head内とかになるのしょうか? それぞれ、ボタンの表示は、 if文を使って、show(),hide()メソッドを使うとは思うのですが… 詳しくコードを教えていただけたら、助かります。 どうか、宜しくお願いいたします。

    • ベストアンサー
    • 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>

  • xmlから配列で取得したものを取り出したい

    as3初心者jpncan15といいます。 xmlから配列で取得したものをfunction外で取り出したいのですがどのようにすればいいのか悩んでいます。functionを調べたり配列を調べたり頭がかなり混乱中です。 お手数ですがご教授いただけますでしょうか? var ary:Array=new Array(); var ary_name:Array=new Array(); var loader:URLLoader = new URLLoader(); var request:URLRequest = new URLRequest("b.xml"); var xml:XML; loader.load(request); loader.addEventListener(Event.COMPLETE , XMLload); function XMLload(e:Event):void { xml = XML(e.target.data); num_txt.text = xml.item.length(); //xml件数をテキストフィールドへ入れる for each(var element:Object in xml.item.thumb) //配列に入れる {ary.push(element);} for each(var element_name:Object in xml.item.name) //配列に入れる {ary_name.push(element_name); trace(element_name);}//出力OK } //function外で配列を使用したい trace(ary[5]); trace(ary_name[2]);

    • ベストアンサー
    • Flash
  • XMLからデータを取得

    いつもお世話になっております。 XMLファイルに含まれたデータの中から、特定のデータを検索するプログラムを作りたいと思っております。 <AAA Name="テスト">    <BBB x="2" y="2"></BBB>    <CCC Num="0001"></CCC>    <CCC Num="0002"></CCC> </AAA> XMLデータの形式は↑みたいな感じで、これが100以上あり、CCCタグは0~5個までです。 フォームにテキストボックスを配置し、そこに検索したい語句を入れ、 AAAタグのNameの中身と合致したら、BBB、CCCの属性をすべて取得して表示するということをしたいのですが、 どうにも上手くいきません。 VB2008を使用しております。 方法をご存知の方、ご教授ください……orz

  • JSPでXMLのデータ表示がしたいです

    XMLについてわからないことが多くて、困っています。 質問したいのですが、 JSPの画面でXMLのデータを表示させたいと思っています。 全部のデータを表示という場合、getDocumentElement()メソッドが あると思うのですが、例えばテキストノードのみを表示させたい場合、 <タグ>などのノードから、全テキストノードを一気に拾い出す方法は あるのでしょうか?メソッドとか。 ただ表示させるだけではなくて、データの削除とか変更などのデータ加工 もしていきたいので、最適なデータの表示がしたいんです。なので、操作 をしやすい取り出し方というか。。。 漠然とした質問で申し訳ありませんが、詳しい方がいましたら教えてもらえ ないでしょうか?お願いします。

    • ベストアンサー
    • XML
  • jQueryでxmlを読み込んで、五十音順にソート

    jQueryでxmlを読み込んで、五十音順にソート qa6111214でjQueryでXMLを操作する方法について質問させていただいた者です。 たびたび申し訳有りません。質問させていただきます。 jQueryでxmlで読み込んで、五十音順にソートしたいのですが方法がわかりません。 ---------------------------------------------------------------------------------------------------- <data> <item> <link>hoge1.html</link> <name>山田 太郎</name> <syllabary>やまだたろう</syllabary> </item> <item> <link>hoge2.html</link> <name>山田 花子</name> <syllabary>やまだはなこ</syllabary> </item> <item> <link>hoge3.html</link> <name>田中 太郎</name> <syllabary>たなかたろう</syllabary> </item> <item> <link>hoge4.html</link> <name>田中 花子</name> <syllabary>たなかはなこ</syllabary> </item> <item> <link>hoge5.html</link> <name>鈴木 太郎</name> <syllabary>すずきたろう</syllabary> </item> <item> <link>hoge6.html</link> <name>鈴木 花子</name> <syllabary>すずきはなこ</syllabary> </item> </data> ------------------------------------------------------------------------------------------------ というxmlデータをjQueryで読み込んで、五十音順にソートして表示する方法を探しています。 例えば…… ------------------------------------------------------------------------------------------------ <a href="hoge5.html">鈴木 太郎</a> <a href="hoge6.html">鈴木 花子</a> <a href="hoge3.html">田中 太郎</a> <a href="hoge4.html">田中 花子</a> <a href="hoge1.html">山田 太郎</a> <a href="hoge2.html">山田 花子</a> ------------------------------------------------------------------------------------------------ といった具合に書き出したいのですが…… ご教授願います。また、参考になりそうな書籍/サイトはありますでしょうか。 宜しくお願い致します。

  • 各ノードの行数取得

    MSXMLのDOMを使っているのですが、ノードを取得した際に、 実際読み込んだXMLの行数の取得は出来ないのでしょうか? 例えば、 1 <data> 2 <item>○○○○</item> 3 <item>××××</item> 4 <item>△△△△</item> 5 </data> ××××のitemノードを取得した際に、3行目という情報を 取得したい。 以上です。 ご教授ください。 よろしくお願いします。

    • ベストアンサー
    • XML
  • XMLファイルの読み方

    以下の様なXMLファイルがあるとします。 "groupノード(?)のアトリビュートであるgrpIDとnumStdGrpの値を取得したいです。 JavaでDOMパーサーを使うことに限定します。 <?xml version="1.0" encoding="UTF-8"?> <dataHeader <numStudent>150</numStudent> <dataMain <band name="B1"> <group grpID="1" numStdGrp="15"/> </band> <band name="B2"> <group grpID="2" numStdGrp="10"/> </band> </dataMain> </dataHeader> 自分では試して見たのは以下まで。 File fXmlFile = new File("C:\XMLファイル名"); DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); Document doc = dBuilder.parse(fXmlFile); doc.getDocumentElement().normalize(); (1)numStudentとdataMainノードまでは簡単: 例) NodeList nListDM = doc.getElementsByTagName("dataMain"); 上記からnListDM.item(0)してノード取得できて、getNodeName()で名前表示する。 (2)bandノード(?)もgetElementsByTagNameで取れます。 NodeList nListBand = doc.getElementsByTagName("band"); このノードリストの長さは2です。それぞれ、アトリビュート「name」の値(B1, B2)は以下の様にして取れます。 Node nNodeBand = nListBand.item(0); Element bElement = (Element) nNodeBand; して、bElement.getAttribute("name")。 問題はこの以降。 初めに書きましたように、 groupノード(?)のアトリビュートであるgrpIDとnumStdGrpの値どうやって取得するのでしょうか? getElementsByTagName(group)はだめです。どのbandのgroupか、区別できないので。 Java+XMLに詳しい方、教えてください。 よろしくお願いします。

    • ベストアンサー
    • Java
  • VB2005でXMLのテキストデータをXMLデータにするには?

    VB2005の初心者です。 タグ付きのXMLのテキストデータを読み込んで、項目ごとにDBに登録したいのですが、やり方が分りません。 テキストデータをXMLデータ、もしくはノード、もしくはデータセット型に変換しなければならないと思うのですが、そのやり方を教えていただきたいです。 ちなみに、XMLデータをテキストデータにするのは下記のとおりでできました。この strText を逆にXMLデータに変換したいです。 Dim xmlDoc As MSXML2.DOMDocument = New MSXML2.DOMDocument Dim strText As String xmlDoc.PreserveWhitespace = True xmlDoc.Load("C:XMLData.xml") strText = xmlDoc.xml 何かヒントでも良いので、たくさんの方の知恵をお借りしたいです。

専門家に質問してみよう