我正在使用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订阅源中的元素?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
xmlHttp.responseText
是一个String
。String
没有getElementsByName()
函数。你期望得到一个 XML 响应吗?尝试使用xmlHttp.responseXML
。此外,你可能会在使用 JS 时遇到跨域问题。你可以通过 AJAX 请求从 PHP 端获取数据源,并将其传递给自己的应用程序。 - CᴏʀʏxmlHttp.responseXML
正是我所需要的。我还添加了所有访问的来源策略头。 - Daniel