2011-02-06 57 views
0

我開始關注Google的Picasa API中的照片數據,該數據爲您提供了一個包含專輯和照片信息的大型XML文件。使用Google Picasa API和JQuery進行簡單的XML解析

我正在做一些快速和骯髒的測試,以XML解析XML文件(現在保存在本地硬盤驅動器)與JQuery和拉出相冊ID的存儲爲「gphoto: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

回答

0

This answer解決了這個問題。我把它通過更換這個工作:

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

與此:

var albumId = $(this).find('[nodeName=gphoto:id]').text(); 
1

麻煩的是,jQuery的解析一些與冒號作爲過濾器開始(如:first:last:visible等)。它將您的選擇器gphoto:id解析爲「使用id過濾器」的gphoto元素。你需要躲避結腸表明,它的標記名稱的一部分:

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

你需要雙反斜線使帶子的內部表示,作爲的jQuery收到,具有本反斜槓。

+0

這消除了錯誤,但不顯示專輯身份證號碼。我正在對「標題」進行測試,我可以用它替換「gphoto:id」並獲取相冊名稱列表。 – charliesneath 2011-02-06 23:30:33