2010-07-22 4 views
0

Я разбираю видеопоток YouTube в приложении AIR. Использование jquery для его анализа.JQuery не удалось разобрать XML

$(feed).find("entry").each(function() 
    { 
     var tit = $(this).find('title'); 
     alert(tit.text()); 
    } 

Похоже, после разбора category (категория тега закрыт другой способ) он не разобрать остальную часть кода выше doc.The успешно оповещает текст до updated tag.What может быть решением.

<entry gd:etag='W/&quot;C0AMRn47eCp7ImA9WxRQGUw.&quot;'> 
     <id>tag:youtube,2008:video:ZTUVgYoeN_b</id> 
     <published>2008-07-05T19:56:35.000-07:00</published> 
     <updated>2008-07-18T07:21:59.000-07:00</updated> 
     <category scheme='http://schemas.google.com/g/2005#kind' 
      term='http://gdata.youtube.com/schemas/2007#video'/> 
     <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' 
      term='Shopping'/> 
     <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' 
      term='parkas'/> 
     <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat' 
      term='People' label='People'/> 
     <title>Shopping for Coats</title> 
     <content type='application/x-shockwave-flash' 
      src='http://www.youtube.com/v/ZTUVgYoeN_b?f=gdata_standard...'/> 
     <link rel='alternate' type='text/html' 
      href='http://www.youtube.com/watch?v=ZTUVgYoeN_b'/> 
     <link rel='http://gdata.youtube.com/schemas/2007#video.responses' 
      type='application/atom+xml' 
      href='http://gdata.youtube.com/feeds/api/videos/ZTUVgYoeN_b/responses?v=2'/> 
     <link rel='http://gdata.youtube.com/schemas/2007#video.ratings' 
      type='application/atom+xml' 
      href='http://gdata.youtube.com/feeds/api/videos/ZTUVgYoeN_b/ratings?v=2'/> 
     <link rel='http://gdata.youtube.com/schemas/2007#video.complaints' 
      type='application/atom+xml' 
      href='http://gdata.youtube.com/feeds/api/videos/ZTUVgYoeN_b/complaints?v=2'/> 
     <link rel='http://gdata.youtube.com/schemas/2007#video.related' 
      type='application/atom+xml' 
      href='http://gdata.youtube.com/feeds/api/videos/ZTUVgYoeN_b/related?v=2'/> 
     <link rel='http://gdata.youtube.com/schemas/2007#mobile' 
      type='text/html' href='http://m.youtube.com/details?v=ZTUVgYoeN_b'/> 
     <link rel='self' type='application/atom+xml' 
      href='http://gdata.youtube.com/feeds/api/standardfeeds/top_rated/v/ZTUVgYoeN_b?v=2'/> 
     <author> 
      <name>andyland74</name> 
      <uri>http://gdata.youtube.com/feeds/api/users/andyland74</uri> 
     </author> 
     <media:group> 
      <media:title type='plain'>Shopping for Coats</media:title> 
      <media:description type='plain'> 
      What could make for more exciting video? 
      </media:description> 
      <media:keywords>Shopping, parkas</media:keywords> 
      <yt:duration seconds='79'/> 
      <yt:videoid>ZTUVgYoeN_b</yt:videoid> 
      <media:player url='http://www.youtube.com/watch?v=ZTUVgYoeN_b'/> 
      <media:credit role='uploader' scheme='urn:youtube'>andyland74</media:credit> 
      <media:category label='People' 
      scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>People 
      </media:category> 
      <media:content 
      url='http://www.youtube.com/v/ZTUVgYoeN_b?f=gdata_standard...' 
      type='application/x-shockwave-flash' medium='video' 
      isDefault='true' expression='full' duration='215' yt:format='5'/> 
      <media:content 
      url='rtsp://rtsp2.youtube.com/ChoLENy73bIAEQ1kgGDA==/0/0/0/video.3gp' 
      type='video/3gpp' medium='video' 
      expression='full' duration='215' yt:format='1'/> 
      <media:content 
      url='rtsp://rtsp2.youtube.com/ChoLENy73bIDRQ1kgGDA==/0/0/0/video.3gp' 
      type='video/3gpp' medium='video' 
      expression='full' duration='215' yt:format='6'/> 
      <media:thumbnail url='http://img.youtube.com/vi/ZTUVgYoeN_b/2.jpg' 
      height='97' width='130' time='00:00:03.500'/> 
      <media:thumbnail url='http://img.youtube.com/vi/ZTUVgYoeN_b/1.jpg' 
      height='97' width='130' time='00:00:01.750'/> 
      <media:thumbnail url='http://img.youtube.com/vi/ZTUVgYoeN_b/3.jpg' 
      height='97' width='130' time='00:00:05.250'/> 
      <media:thumbnail url='http://img.youtube.com/vi/ZTUVgYoeN_b/0.jpg' 
      height='240' width='320' time='00:00:03.500'/> 
     </media:group> 
     <yt:statistics viewCount='383290' favoriteCount='7022'/> 
     <gd:rating min='1' max='5' numRaters='14763' average='4.93'/> 
     <georss:where> 
      <gml:Point> 
      <gml:pos>21.37124437061831 -157.87353515625</gml:pos> 
      </gml:Point> 
     </georss:where> 
     <gd:comments> 
      <gd:feedLink href='http://gdata.youtube.com/feeds/api/videos/ZTUVgYoeN_b/comments' 
      countHint='9416'/> 
     </gd:comments> 
     </entry> 
+0

Какой браузер и на какой версии он не работает? Кроме того, вы не разбираете XML. – Anurag

+0

Не браузер это приложение Adobe Air App.Well, дайте мне знать, как разбирать XML, вот что я прошу здесь! – Arshdeep

ответ

1

Вы правы категории тега ... что-то странно был сделан, я заметил это, когда я скопировать и вставить код XML юность Google, который зарегистрирован как текст, так как он находится внутри <pre style="word-wrap: break-word; white-space: pre-wrap;">[XML HERE]</pre> в XML-парсер ; он тоже испытывал трудности с чтением тегов категории, которые оказались неправильно закрытыми (хотя они и есть). У меня есть ощущение, что, чтобы исправить XML, пространство между косой чертой и больше знак будет необходим, то есть

<category scheme='[scheme_url]' term='[term_name]' />

вместо того, что у них есть:

<category scheme='[scheme_url]' term='[term_name]'/>

Но Думаю, это не поможет вам решить вашу проблему, если вы не захотите сначала исправить XML. Тем не менее, я использовал jQuery для синтаксического анализа одних и тех же фидов. Это может быть ваш начальный код $.get, попробуйте использовать $.getJSON, если вы еще этого не сделали ... позвольте мне посмотреть оставшуюся часть вашего кода, если вам все еще нужна помощь.

В противном случае, вот что я использовал, и он работает (насколько я знаю). Я использую его на веб-сайте, а не в Adobe AIR, но если вы используете jQuery в AIR, jQuery - это jQuery, и это не имеет значения (это лучшая часть о jQuery, imho). Вот мой код:

$.getJSON("http://gdata.youtube.com/feeds/api/users/[insert_userName_here]/uploads?orderby=published&start-index=1&max-results=50&v=2&alt=json-in-script&callback=?", 
function(json){ 
    $.each(json.feed.entry,function(j,entry) { 
     //Note: I wouldn't use an alert if you're reading from a big feed, as max-results is set to 50... 
     alert(entry.title.$t); 
    }); 
}); 

Приведенный выше код читает любой канал пользователя, содержащий все загруженные видео. Надеюсь это поможет!

Смежные вопросы