2014-12-22 6 views
0

Я использую Google Feed API для извлечения записей в блоге от tumblr feed.Как удалить теги HTML из RSS-ленты?

Я был в состоянии потянуть содержание, но на выходе выходит с HTML-теги, как, например:

<p>I remember one day asking one of my mentors James if he ever got nervous around people. James replied, “Only when I need something from them.”</p>

код прост, как показано ниже:

<script type="text/javascript" src="https://www.google.com/jsapi"></script> 
<script type="text/javascript"> 
google.load("feeds", "1"); 

function initialize() { 
    var feed = new google.feeds.Feed("http://adriennetran.tumblr.com/rss"); 
    feed.load(function(result) { 

    if (!result.error) { 
     var container = document.getElementById("feed"); 

     for (var i = 0; i < result.feed.entries.length; i++) { 
     var entry = result.feed.entries[i]; 
     window.content = document.createTextNode(entry.content); 
     container.appendChild(content); 
     } 
    } 
    }); 
} 


google.setOnLoadCallback(initialize); 

</script> 

I попробовал написать функцию, чтобы разбить все, что начинается с <:

content_array = content.split(" "); 

for (i=0; i < content_array.length; i++){ 
    if ((content_array[i].split(""))[0] == "<"){ 
     content_array.splice(i, 1); 
    } 
} 

content2 = content_array.toString(); 

Но у меня есть ошибка Uncaught TypeError: undefined is not a function, потому что content - это object, а не string, и поэтому я не могу позвонить content.split(" ").

Я попытался преобразовать в строку, но это выход из консоли

typeof(content) 
> "object" 

c2 = content.toString() 
> "[object Text]" 

Кто-нибудь есть какие-либо идеи о том, как манипулировать элементы, полученные из RSS?

+2

Чтобы получить дополнительную услугу, вы можете предоставить JSfiddle? – Mouser

ответ

3

Давайте посмотрим

var regExString = /(<([^>]+)>)/ig; //create reg ex and let it loop (g) 
contentString = content.textContent // get text from node (no longer an object but string. 

contentString = contentString.replace(regExString, "") //find all tags and delete them. 
+0

Хорошее мышление! Я пробовал это, но content.toString просто выводит как результат: «object» WOW это гораздо проще. Заменить тег, хотя эта длинная функция я написал. – Aspen

+0

Быть ясным. Это результат: 'typeof (content) " object " c2 = content.toString() " [object Text] "' ​​ – Aspen

+0

@Aspen Обновлен мой код. Кажется, что объект является текстовым узлом. node.textContent должен работать с магией. – Mouser

0

Если JQuery включен на вашей странице, вы можете создать узел с помощью HTML полученный от корма и получить текст из HTML следующим образом:

var html = '<p>I remember one day asking one of my mentors James if he ever got nervous around people. James replied, “Only when I need something from them.”</p>'; 
var text = $(html).text(); // This gets the text from any HTML code and leaves out the tags 
Смежные вопросы