使用javascript解析rss订阅源
我使用PHP和JavaScript解析RSS订阅源。首先,我使用PHP创建了一个代理来获取RSS提要。然后使用JavaScript从此RSS源获取个人数据。我与JavaScript的问题。如果我没有错误地使用console.log(rssData);
,我可以获得整个JavaScript文档。如果我尝试获取本文档中的单个元素,例如:<title>
,<description>
或<pubDate>
使用rssData.getElementsByName("title");
它会给出错误“Uncaught TypeError:Object .... has no method'getElementsByName'”。所以我的问题是如何获得RSS源中的元素?使用javascript解析rss订阅源
使用Javascript(更新)
function httpGet(theUrl) {
var xmlHttp = null;
xmlHttp = new XMLHttpRequest();
xmlHttp.open("GET", theUrl, false);
xmlHttp.send(null);
return xmlHttp.responseXML;
}
// rss source
var rssData = httpGet('http://website.com/rss.php');
// rss values
var allTitles = rssData.getElementsByTagName("title"); // title
var allDate = rssData.getElementsByTagName("pubDate"); // date
试着改变httpGet
函数的最后一行:
return xmlHttp.responseXML;
毕竟,你期待一个XML响应返回。您可能还需要将此行添加到您的PHP代理中:
header("Content-type: text/xml");
强制将返回内容作为XML发送。
'return xmlHttp.responseXML;'正是我需要的,谢谢。 –
你能帮我多做一件事吗?我想遍历所有的日期,只返回匹配当前日期的标题。我更新了我的帖子。 –
这完全是另一个问题。 –
'xmlHttp.responseText'是一个'String'。 'String's没有'getElementsByName()'函数。你期待XML响应吗?请改用'xmlHttp.responseXML'。此外,您可能会遇到跨域问题与JS做这个。您可能希望通过对您自己的应用程序的AJAX请求获取PHP端的提要。 –
@Cory感谢您的回复,是的'xmlHttp.responseXML'正是我一直在寻找的。我还将来源策略标题添加到所有访问。 –