jQueryでxmlの異なるタグ要素を取得したい。


htmlファイルによって、xmlの別々の要素を取得したいのです。
やりたいメソッドは同じです。
xmlの要素の中のデータによって、imgの表示/非表示を切り替えたいのです。

問題は、対象となるhtmlファイルが複数あり
そのhtmlファイルによって、参照するxmlのタグが異なる事なんです。

xmlは以下のような感じです。
<?xml version="1.0" encoding="utf-8"?>
<shopdata>
<item>
<name1>0</name1>
<name2>1</name2>
<name3>0</name3>
</item>
</shopdata>

ただ<name1><name2><name3> とタグ名がバラバラなんです。
ちなみにhtmlは複数あって
 a.htmlの時は→xmlの<name1>を参照
 b.htmlの時は→xmlの<name2>を参照
 c.htmlの時は→xmlの<name3>を参照
という感じです。
※htmlファイル名は特に規則的ではなく、いろいろなファイル名がついています。

詳しくコードを教えていただけたら、助かります。
宜しくお願いいたします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2011/10/17 23:51:21

ベストアンサー

id:Lhankor_Mhy No.1

回答回数814ベストアンサー獲得回数232

別々のHTMLに対してひとつのjsファイルで対応したいということですよね。

 

こんな感じでしょうか?

var hash = {
  'a.html':'name1',
  'b.html':'name2',
  'c.html':'name3'
}

var fileName = location.href.match(/[^\/]+$/)
$.get(
  'hoge.xml',
  {'type':'xml'},
  function(data){
    var flag = $(hash[fileName],data).text();
    // なにかの処理
  }
)

ファイル名をキーにするのは泥臭いですしバグの温床という気がしますので、できれば関数にしてHTMLから引数を渡した方がいいと思います。

id:corgi_coro

アドバイスありがとうございます。

また、お礼が遅くなってしまい、すみません。

HTMLに対して、jsファイルは一つです。

参考にして、いろいろやってみますね。

コードを書いていただいて

もっともっと勉強しないとな…って実感です(汗)

お忙しいところ、大変ありがとうございました。

2011/10/16 18:41:53

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません