複数のXMLファイルを読み込んで処理をネストさせたい
ググると並列な取扱方法はすぐに見つかった。同一なデータ構造なら簡単みたいだ。
第5回 ajaxを使って複数ブログの最新記事一覧を表示する
データXMLと詳細XMLとか別情報となっているXMLファイルで片方を読み込んでから、もう一方のXMLを処理したいことってあるよね?
部屋(room.xml)と設備(equip.xml)とか
XMLのロードをネストするやり方
//呼び出すHTML <script type="text/javascript"> <!-- $(document).ready(function(){ $.ajax({ url: "equip.xml", dataType: "xml", success:xmlEquip, error: function(){alert("equipXMLファイルを読み込めませんでした");}, cache:false }); }); --> </script>
部屋リストに設備情報を被せたいので先に設備
function xmlEquip(xml){ var equip={}; $(xml).find("Row").each(function(){ var name = $("name", this).text(); var data = $("data", this).text(); equip[name].push(data);//このあたりは適当 }); $.ajax({ url: "http://fullpath/room.xml", dataType: "xml", success:function(xml){xmlRoom(xml, equip)}, error: function(){alert("roomXMLファイルを読み込めませんでした");}, cache:false }); } function xmlRoom(data, equip){ var rtn=""; $(data).find("Row").each(function(){ var name=$("name", this).text(); rtn+=equip[name]; }); $("#room").html(rtn); }
ポイント
- 一回目の呼び出しでハッシュにデータを保存する
- successなときに一手間かけると別データとして扱ってくれるようになった
- 二回目に呼び出すXMLファイルはフルパスにしないとダメだった
- ハッシュデータを呼び出してHTMLを生成
こんなのあまり使わないね。。。