0

アルバムや写真に関する情報を含む大きなXMLファイルを提供する写真データ用のGoogleのPicasaAPIを調べ始めています。

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

4

3 に答える 3

1

問題は、jQueryがコロンで始まるものをフィルターとして解析することです(、、、:firstなど:last:visible。セレクターgphoto:idを「フィルターgphotoを使用する要素」として解析します。idコロンをエスケープして、それがすべてタグ名の一部であることを示す必要があります。

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

jQueryによって受信された文字列の内部表現にバックスラッシュが存在するようにするには、ダブルバックスラッシュが必要です。

于 2011-02-06T23:24:16.350 に答える
0

この答えは問題を解決しました。これを置き換えることで動作するようになりました:

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

これとともに:

var albumId = $(this).find('[nodeName=gphoto:id]').text();
于 2011-02-07T05:03:42.483 に答える
0

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

'gphoto\\\:id'

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

于 2011-02-06T23:25:57.020 に答える