【问题标题】:Jquery failed parsing XMLJquery 解析 XML 失败
【发布时间】:2011-03-19 19:46:12
【问题描述】:

我正在 AIR 应用程序中解析 youtube 视频源。 使用 jquery 解析。

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

似乎在解析category(类别标签以不同的方式关闭)后,它无法解析文档的其余部分。上面的代码成功地提醒文本直到updated标签。有什么解决办法。

 <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>

【问题讨论】:

  • 什么浏览器和什么版本不能运行?此外,这不是您解析 XML 的方式。
  • 不是浏览器,它是一个 Adob​​e Air 应用程序。那么让我知道如何解析 XML,这就是我在这里要问的!

标签: jquery air xml-parsing


【解决方案1】:

您对类别标签是正确的...发生了一些奇怪的事情,当我复制并粘贴注册为文本的 google 的 youtube xml 代码时,我注意到了这一点,因为它位于 &lt;pre style="word-wrap: break-word; white-space: pre-wrap;"&gt;[XML HERE]&lt;/pre&gt; 的内部到 XML 解析器中;它也无法读取类别标签,这些标签似乎被不正确地关闭(即使它们是)。我有一种感觉,要修复 xml,正斜杠和大于号之间的空格是必要的,即

&lt;category scheme='[scheme_url]' term='[term_name]' /&gt;

而不是他们所拥有的:

&lt;category scheme='[scheme_url]' term='[term_name]'/&gt;

但我想这并不能真正帮助您解决问题,除非您愿意先修复 XML。但是,我已经使用 jQuery 成功解析了相同的提要。这可能是您最初的 $.get 代码,如果您还没有,请尝试使用 $.getJSON...如果您仍需要帮助,请让我看看您的其余代码。

否则,这是我一直在使用的,它确实有效(据我所知)。我在网站而不是 Adob​​e AIR 中使用它,但如果您在 AIR 中使用 jQuery,jQuery 就是 jQuery,这无关紧要(这是关于 jQuery 最好的部分,恕我直言)。这是我的代码:

$.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);
    });
});

上面的代码会读取包含所有上传视频的任何用户的供稿。希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2011-03-28
    • 1970-01-01
    • 2019-08-17
    • 1970-01-01
    • 2014-12-30
    • 1970-01-01
    • 2018-09-24
    • 1970-01-01
    相关资源
    最近更新 更多