2011-02-06 14 views
0

写真のデータ用にGoogleのPicasa APIを調べ始めています。このファイルには、アルバムや写真に関する情報を含む大きなXMLファイルがあります。Google Picasa APIとJQueryを使用した単純なXML解析

JQueryを使ってXMLファイル(現在は私のハードドライブにローカルに保存されている)を解析し、 "gphoto:id"タグとして保存されているアルバムIDを取り出して、そして、divの中でそれらを表示:

$(document).ready(function() { 
$.get(
    'albums.xml', 
    function(data) 
    { 
     $(data).find('entry').each(function() 
     { 
      var albumId = $(this).children('gphoto:id').text(); 
      $('#photos').append(albumId + '<br />'); 
     }) 
    }) 
}) 

を、私は、コンソールに次のエラーを取得しています:

jquery.js:3321 - キャッチされない構文エラー、認識できない表現:構文エラー、認識できない表現:IDを

これは、XMLファイルの他のタグ(タイトル、著者、更新されたものなど)で動作しますが、ここで何が起こっているのかを理解しようとしています。何とか "gphoto:id"のコロンと関係がありますか?

あなたはPicasaのアルバムからのXMLファイルは、ここでどのように見えるかを確認することができますhttp://code.google.com/apis/picasaweb/docs/2.0/developers_guide_protocol.html#ListAlbumPhotos

答えて

1

トラブルは、jQueryの(のような:first:last:visibleなど)フィルタとしてコロンで始まる何かを解析することです。セレクタgphoto:idを「idフィルタを使用するgphoto要素」として解析します。あなたはそれがタグ名のすべての部分だということを示すためにコロンをエスケープする必要があります。

var albumId = $(this).children('gphoto\\:id').text(); 

文字列の内部表現するようにjQueryで受信したとしてあなたは、二重のバックスラッシュを必要とする、バックスラッシュの存在があります。

+0

これは、エラーを削除しますが、アルバムID番号を表示しません。これで

var albumId = $(this).children('gphoto:id').text(); 

:私はそれがこれを置き換えることで動作するようになりました。私は "gphoto:id"の代わりに置くことができる "title"に対してそれをテストし、アルバム名のリストを取得します。 – charliesneath

+0

@zeedogこれは、いくつかのサンプルXMLを使用せずにはかなり難しいです... – lonesomeday

+0

確かなこと、[こちらのページ](http://code.google.com/apis/picasaweb/docs/2.0/developers_guide_protocol.html)サンプルフィードを含むPicasa APIのドキュメントをご覧ください。 – charliesneath

0

あなたはバックスラッシュでコロンをエスケープする必要があります。

'gphoto\\\:id' 

the jQuery FAQを参照してください。

関連する問題