java script xml_javascript – 使用Java Script从URL解析XML / RSS

(你不能有多少google.)一旦你有

worked around the Same Origin Policy,如果资源被提供与一个

XML MIME type(其中的

it is in this case,文本/ xml),您可以执行以下操作:

var x = new XMLHttpRequest();

x.open("GET", "http://feed.example/", true);

x.onreadystatechange = function () {

if (x.readyState == 4 && x.status == 200)

{

var doc = x.responseXML;

// …

}

};

x.send(null);

(另请参见AJAX和XMLHttpRequest Level 2规范[工作草案]其他事件处理程序属性.)

实质上:不需要解析.如果您要访问XML数据,请使用标准的DOM Level 2+ Core或DOM Level 3 XPath方法,例如.

/* DOM Level 2 Core */

var title = doc.getElementsByTagName("channel")[0].getElementsByTagName("title")[0].firstChild.nodeValue;

/* DOM Level 3 Core */

var title = doc.getElementsByTagName("channel")[0].getElementsByTagName("title")[0].textContent;

/* DOM Level 3 XPath (not using namespaces) */

var title = doc.evaluate('//channel/title/text()', doc, null, 0, null).iterateNext();

/* DOM Level 3 XPath (using namespaces) */

var namespaceResolver = (function () {

var prefixMap = {

media: "http://search.yahoo.com/mrss/",

ynews: "http://news.yahoo.com/rss/"

};

return function (prefix) {

return prefixMap[prefix] || null;

};

}());

var url = doc.evaluate('//media:content/@url', doc, namespaceResolver, 0, null).iterateNext();

(另见JSX:xpath.js,一个方便的,名称空间感知的DOM 3 XPath包装器,不使用jQuery.)

但是,如果出于某些(错误)原因,MIME类型不是XML MIME类型,或者如果DOM实现无法识别,则可以使用最新浏览器中内置的解析器来解析responseText属性值.有关在IE / MSXML中使用的解决方案,请参阅pradeek’s answer.以下应该在其他地方工作:

var parser = new DOMParser();

var doc = parser.parseFromString(x.responseText, "text/xml");

按照上述步骤进行.

在运行时使用功能测试来确定给定实现的正确代码分支.最简单的方法是:

if (typeof DOMParser != "undefined")

{

var parser = new DOMParser();

// …

}

else if (typeof ActiveXObject != "undefined")

{

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");

// …

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值