2011-02-06 5 views
0

사진 데이터에 대한 Google의 Picasa API를 살펴보기 시작합니다.이 파일은 앨범 및 사진에 대한 정보가 포함 된 큰 XML 파일을 제공합니다.Google Picasa API 및 JQuery를 사용한 간단한 XML 구문 분석

JQuery를 사용하여 XML 파일 (현재 내 하드 드라이브에 로컬로 저장되어 있음)을 구문 분석하고 "gphoto : id"태그로 저장된 앨범 ID를 추출하려면 빠르고 간단하게 테스트하고 있습니다. 및 사업부에서 그들을 표시 :

$(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 - catch되지 않은 구문 오류, 인식 할 수없는 표현 : 구문 오류, 인식 할 수없는 표현 : 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:idid 필터를 사용하여 "gphoto 요소"로 구문 분석합니다. 당신은 태그 이름의 모든 부분을 나타 내기 위해 콜론을 탈출해야합니다 jQuery를에 의해 수신 문자열의 내부 표현은, 백 슬래시 선물을 가질 수 있도록

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

당신은 이중 백 슬래시가 필요합니다.

+0

이 오류를 제거하지만 앨범 ID 번호를 표시하지 않습니다. "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

tpo는 콜론을 백 슬래시로 이스케이프해야합니다. 예 :

'gphoto\\\:id' 

the jQuery FAQ을 참조하십시오.