从包含<tag> </tag>的ajax响应中提取文本

时间:2013-04-18 12:04:03

标签: javascript ajax text extract

我已经编写了一段代码来从rss页面检索新闻。这是代码:

this.loadRecentNews = function loadRecentNews() {
            $.get("http://rss.nytimes.com/services/xml/rss/nyt/GlobalHome.xml", function (data) {
                $(data).find("item").each(function () {
                    var el = $(this);

                    console.log("------------------------");
                    console.log("Title      : " + el.find("title").text());
                    console.log("Link     : " + el.find("link").text());
                    console.log("Description: " + el.find("description").text());
                    console.log("Date: " + el.find("pubDate").text());

                });
            });

        };

这是输出:

Title : Example of title

Link : http://www.example.com

Description : Example of <<bb>>Description</b> containing <> tag..

Date : Example of date

我的问题是我只想提取Description值的文本来构建一个包含这个文本的新Json对象。

如何在不使用&lt;&gt;的情况下仅提取文本价值观?

1 个答案:

答案 0 :(得分:0)

看到你正在使用jQuery,你可以使用它的.text()方法。

var beforeText = "Example of <b>Description</b>" ;
var afterText = $("<p>").html(beforeText).text() ;

这使用jQuery创建一个新的HTML元素(永远不会添加到页面中)并更新其innerHTML,然后使用.text()来获取文本。

另一个(风险较高)选项是使用空字符串替换<>之间的任何内容的正则表达式:

var afterText = beforeText.replace(/<[^>]*>+/g, "")