格式化HTML的最佳做法

时间:2014-05-08 13:51:56

标签: javascript jquery html yql

我继承了一些使用YQL查询从外部站点获取所有HTML的代码。然后过滤数据,然后输出到容器。 YQL查询不返回XML而是返回HTML,我尝试将格式更改为JSON而没有运气。也许我搞砸了语法。

以下是YQL查询:

$.getJSON("http://query.yahooapis.com/v1/public/yql?" +
                "q=select%20*%20from%20html%20where%20url%3D%22" +
                encodeURIComponent(url) +
                "%22&format=JSON&callback=?",

然后将此数据传递给此过滤器函数(这不是整段代码)

function filterData(data) {

        data = data.replace(/<?\/body[^>]*>/g, '');
        data = data.replace(/[\r|\n]+/g, '');
        data = data.replace(/<--[\S\s]*?-->/g, '');
        data = data.replace(/<noscript[^>]*>[\S\s]*?<\/noscript>/g, '');
        data = data.replace(/<script[^>]*>[\S\s]*?<\/script>/g, '');
        data = data.replace(/<p>5\) \{ return; }.* \} \}; <\/p>/, '');
        data = data.replace(/<body[^>]*>/g, '');
        data = data.replace(/<hr[^>]*>/g, '');
        data = data.replace(/<img[^>]*>/g, '');
        data = data.replace(/<table[^>]*>/g, '<table>');

        return data;
}

我觉得必须有更好的方法将这些返回的HTML数据放入某种模板或其他东西,我对jQuery非常不熟悉,任何帮助都非常感谢!

1 个答案:

答案 0 :(得分:1)

您希望将它们作为JSON抓取,以便在jQuery中更轻松地进行处理。您只需要确保将大写JSON更改为小写json以从API获取JSON输出。

$.getJSON("http://query.yahooapis.com/v1/public/yql?" +
                "q=select%20*%20from%20html%20where%20url%3D%22" +
                encodeURIComponent(url) +
                "%22&format=json&callback=?",