我繼承了一些使用YQL查詢從外部站點獲取所有HTML的代碼。數據然後被過濾然後輸出到容器。 YQL查詢不是返回XML,而是HTML,我試圖將格式更改爲JSON,但沒有運氣。也許我搞亂了語法。刮格式HTML格式的最佳做法
這裏是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非常不熟悉,非常感謝任何幫助!
這很奇怪......我一直接受來自該服務的JSON,但我多年沒有使用它。 – Brad
我只是將HTML放入一個不可見的DOV('$(「#隱藏」)。html(data)'),然後只使用正常的jQuery選擇器,以便搜索並刪除/清理任何東西。 – RoToRa