質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

14751閲覧

XMLファイルから特定のタグの要素だけを抽出する方法。

tarotarosu

総合スコア114

XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2016/05/07 15:03

編集2016/05/13 04:15

###前提・実現したいこと
xmlファイルの中から特定のタグ内に記述された要素を抽出したいと考えています。

例えば、下記のようなxmlファイルがあり、webページ上に配置されたボタン1とボタン2のうち、ボタン1をクリックすると、1番目の<item>内の<texture_src>の情報(assets/picture1.png)を取得し、ボタン2をクリックすると、2番目の<item>内の<texture_src>の情報(assets/picture2.png)を取得するといった感じです。

###該当のソースコード

xml

1<?xml version="1.0" encoding="UTF-8"?> 2<info> 3 <item> 4 <id>type01</id> 5 <name>test1</name> 6 <texture_src>assets/picture1.png</texture_src> 7 </item> 8 <item> 9 <id>type02</id> 10 <name>test2</name> 11 <texture_src>assets/picture2.png</texture_src> 12 </item> 13</info>

何か良い方法はありますでしょうか?
ご回答いただけると助かりますm(._.)m

###補足情報(言語/FW/ツール等のバージョンなど)
jQueryの$.ajaxを使用してxmlファイルを読み込もうと考えています。

###追記
コメントありがとうございます_(..)

###該当のソースコード

xml

1<?xml version="1.0" encoding="UTF-8"?> 2<info> 3 <item type="type01"> 4 <id>type01</id> 5 <name>test1</name> 6 <texture_src>assets/picture1.png</texture_src> 7 </item> 8 <item type="type02"> 9 <id>type02</id> 10 <name>test2</name> 11 <texture_src>assets/picture2.png</texture_src> 12 </item> 13</info> 14

上記のように<item>にtypeを付与し、クリックするボタンそれぞれのid属性にtypeの値を持たせ、

###該当のソースコード

jquery

1$(xml).find("item").each(function(){ 2 if($(this).attr("type") == "type01"){ 3 var src = $(this).children("texture_src").text(); 4 } 5}); 6

上記のように、typeごとに子要素を探しに行く。といった感じです。

色々試してみてうまく動いた!という感じですので、何か誤りがあるかもしれませんが...

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

jQuery.parseXML か $.ajax( { dataType:'xml', ... で扱えそうです。

【jQuery リファレンス:jQuery.parseXML】
http://www.jquerystudy.info/reference/utilities/parseXML.html

【jQueryでXMLの読み込み&出力をする】
http://www.finefinefine.jp/jquery/kiji2203/

【omnioo lab. record | オムニオラボ WEB, ITのお話 Homepageを作る】
http://www.omnioo.com/record/javascriptjquery/jquery_ajax_xml/

投稿2016/05/07 15:35

kei344

総合スコア69407

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tarotarosu

2016/05/11 01:41

タグに名前(?)をつけることで解決できました。 ご回答ありがとうございました_(._.)_
kei344

2016/05/11 01:50

「タグに名前をつける」について、どのように処理させたか興味が有るので、もしよければ教えていただけませんか?
tarotarosu

2016/05/13 04:13

コメントありがとうございます_(._.)_ ###該当のソースコード ```xml <?xml version="1.0" encoding="UTF-8"?> <info> <item type="type01"> <id>type01</id> <name>test1</name> <texture_src>assets/picture1.png</texture_src> </item> <item type="type02"> <id>type02</id> <name>test2</name> <texture_src>assets/picture2.png</texture_src> </item> </info> ``` 上記のように<item>にtypeを付与し、クリックするボタンそれぞれのid属性にtypeの値を持たせ、 ###該当のソースコード ```jquery $(xml).find("item").each(function(){ if($(this).attr("type") == "type01"){ var src = $(this).children("texture_src").text(); } }); ``` 上記のように、typeごとに子要素を探しに行く。といった感じです。 色々試してみてうまく動いた!という感じですので、何か誤りがあるかもしれませんが...
tarotarosu

2016/05/13 04:16

コードが見にくいため質問の追記に書きました_(._.)_
kei344

2016/05/13 04:48

丁寧に返信ありがとうございます!下記のようにも書けると思いますが、「色々試してみてうまく動いた!」が正義です。 $(xml).find("item").each(function(){ if($(this).find("id").text() == "type01"){ var src = $(this).find("texture_src").text(); } }); ありがとうございました_(._.)_
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問