Проблемы в разборе XML, когда один и тот же элемент существует в разных нс, используя jquery

Содержимое XML:

<?xml version="1.0"?>
<rss version="2.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:yt="http://gdata.youtube.com/schemas/2007" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
      <title>Some Title.</title>
      <description>Pipes Output</description>
      <link>http://pipes.yahoo.com/pipes/pipe.info</link>
      <atom:link rel="next" href="http://pipes.yahoo.com/pipes/pipe.run"/>
      <pubDate>Fri, 17 Aug 2012 07:25:28 +0000</pubDate>
      <generator>http://pipes.yahoo.com/pipes</generator>
      <item>
         <title>Title 1</title>
         <link>http://feedproxy.google.com</link>
         <description>there is no description for this</description>
         <guid isPermaLink="false">http://wordpress.com</guid>
         <pubDate>Thu, 16 Aug 2012 16:47:41 +0000</pubDate>
         <media:content medium="image" url="">
            <media:title type="html">some media</media:title>
         </media:content>
         <media:content medium="image" url="">
            <media:title type="html">Image</media:title>
         </media:content>
         <media:content medium="image" url="">
            <media:title type="html">Image</media:title>
         </media:content>
         <media:content medium="image" url="">
            <media:title type="html">Image</media:title>
         </media:content>
         <category>News</category>
      </item>        
      <item>
         <title>title 3</title>
         <link>http://google.com</link>
         <description>some description</description>
         <author>Self</author>
         <guid isPermaLink="false"></guid>
         <pubDate>Wed, 15 Aug 2012 17:43:32 +0000</pubDate>
         <enclosure type=""/>
      </item>

   </channel>
</rss>

Как отмечается, некоторые предметы имеют <media:content> элемент, а некоторые не имеют

Jquery для разбора XML выглядит следующим образом:

function loadNews()
{
    var entries = [];
    var selectedEntry = "";
    $loadMore = $('#btn_loadmore');
    $loadMore.hide();
    var RSS = "news.xml";                       
//$.get(RSS, {}, function(res, code) {
    $.ajax(
    {
        type: "POST",
        url: "news.xml",                               
        dataType: "xml",
        async: false,
        success: function(res){
        var xml = $(res);
        var items = xml.find("item");
        $.each(items, function(i, v) {
        entry = {
           title:$(v).find("\\:title, title").text(),
           link:$(v).find("link").text().replace(/\/+$/, ""),
           description:$.trim($(v).find("description").text())
    };
     entries.push(entry);
    });

    var s = '';
    for(i=0;i<10;i++)
    {
        console.log(i + "--------------------------");
        if(i>=entries.length)
        break;
        alert(entries[i].title);
        console.log(entries[i].description);
        console.log(entries[i].link);
    }
    }
    });                                                
} 

Эта проблема:

В Firefox приведенный выше код работает нормально. Однако в сафари текст внутри тегов медиа также добавляется в заголовок

вывод в firefox: Title 1

вывод в сафари: Title 1some mediaImageImageImage

РЕДАКТИРОВАТЬ: как сказать селектору не выбирать <media:title> но только <title>

Я прошел этот пост, но ничего не помогло.

Что мне не хватает?

* Я использую jquery 1.7.1, проблема ** такая же с jquery 1.6.****

1 ответ

Решение

Используемый find('[nodeName="title"]').text() вместо find("\\:title, title").text()

Но это работает с jquery 1.6, я хочу добиться того же с jquery 1.7.1

Другие вопросы по тегам