2015-10-19 2 views
1

Я пытаюсь разобрать XML RSS Feed (http://blog.counter-strike.net/index.php/feed/), в настоящее время я могу получить содержание, содержащиеся в <link> и <description> однако я не могу получить <title>, потому что всякий раз, когда я пытаюсь получить его вместо давая мне заголовок блога, мне дали название для моей собственной веб-страницы.Синтаксический XML RSS подача с помощью JQuery и Ajax

Вещь, которую я нахожу странной, состоит в том, что в конечном итоге, если я продолжу обновлять страницу, появится фактическое название блога. Не уверен, что вызывает это, но в идеале я бы предпочел просто иметь заголовок блога, а не мою собственную веб-страницу.

Я посмотрел на этот вопрос, который помог мне начать: parsing xml using jquery and ajax

Ниже приведен код, я до сих пор

$(document).ready(function() { $.ajax({ url: 'http://cors.io/?u=http://blog.counter-strike.net/index.php/feed/', type: 'GET', dataType: "xml" }).done(function(xml) { $.each($("item", xml), function(i, e) { $("#feed").append($(e).find("item title")); $("#feed").append("<br />") $("#feed").append($(e).find("description")); $("#feed").append("<br />") $("#feed").append($(e).find("link")); $("#feed").append("<br />") }); }); });

В дополнение к восстановлению название блога, я «Да, если кто-то может сказать мне, как заменить такие, как &#8217;, которые показаны в описании, с тем, что они должны быть.

Наконец, можно ли извлекать и отображать изображения и видео из RSS-канала? Похоже, что они содержатся в пределах <content:encoded>.

ответ

3

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

$(document).ready(function() { 
    $.ajax({ 
     url: 'http://cors.io/?u=http://blog.counter-strike.net/index.php/feed/', 
     type: 'GET', 
     dataType: "xml" 
    }).done(function(xml) { 

     $.each($("item", xml), function(i, e) { 

      var blogNumber = i + 1 + ". "; 

      var itemURL = ($(e).find("link")); 
      var blogURL = "<a href='" + itemURL.text() + "'>" + itemURL.text() +"</a>"; 

      var itemTitle = ($(e).find("title")); 
      var blogTitle = "<h4>" + blogNumber + itemTitle.text() + "</h4>"; 

      $("#feed").append(blogTitle); 
      $("#feed").append(blogURL); 

     }); 
    }); 
}); 

Мне было проще отлаживать, что я извлечения из RSS элемента путем присвоения значения я получал переменной, которую я мог бы проверить значение с помощью Google Chrome DevTools.

Я решил не получать описания и медиафайлы, такие как изображения/видео из RSS-ленты, а вместо этого просто отображал заголовок и URL-адрес в списке на моей веб-странице. Если кто-то еще хочет дать ответ о том, как правильно описать описание и файлы мультимедиа, я буду рад одобрить его как решение.

Надеюсь, это поможет любому, кто столкнулся с подобными проблемами.

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