javascript读取xml文件
什么是 XML?
- XML 指可扩展标记语言(EXtensible Markup Language)
- XML 是一种标记语言,很类似 HTML
- XML 的设计宗旨是传输数据,而非显示数据
- XML 标签没有被预定义。您需要自行定义标签。
- XML 被设计为具有自我描述性。
- XML 是 W3C 的推荐标准
XML文件
<note> <id>1</id> <name>SevenNight</name> <sex>男</sex> <style>12</style> </note>
1、把 XML 文档解析到 XML DOM 对象中:
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.open("GET","Test.xml",false); xmlhttp.send(); xmlDoc=xmlhttp.responseXML;
//读取节点
xmlDoc.getElementsByTagName("id")[0].childNodes[0].nodeValue;
xmlDoc.getElementsByTagName("name")[0].childNodes[0].nodeValue;
xmlDoc.getElementsByTagName("sex")[0].childNodes[0].nodeValue;
xmlDoc.getElementsByTagName("style")[0].childNodes[0].nodeValue;
跨域访问
出于安全方面的原因,现代的浏览器不允许跨域的访问。
这意味着,网页以及它试图加载的 XML 文件,都必须位于相同的服务器上、同一域上
假如你打算在自己的网页上使用上面的例子,则必须把 XML 文件放到自己的服务器上。否则,xmlDoc.load() 将产生错误 "Access is denied"。
如果想不再同一域上能访问,还可以在服务器相应头设置允许跨域访问
//表示任何网站都可以请求
response.setHeader("Access-Control-Allow-Origin", "*");
//表示只有http://www.baidu.com能请求
response.setHeader("Access-Control-Allow-Origin", "http://www.baidu.com");
访问响应信息
HTTP/1.1 200 OK Set-Cookie: AO="o=1&s=1&dnt=1"; Version=1; Domain=yahoo.com; Max-Age=630720000; Expires=Sat, 18-Jun-2033 10:07:41 GMT; Path=/ Access-Control-Allow-Origin: * //表示允许跨域的相应头 Cache-Control: public, max-age=899 Content-Type: text/xml;charset=utf-8 Content-Encoding: gzip Vary: Accept-Encoding Date: Sun, 23 Jun 2013 10:07:40 GMT
在html中,可以设置
<meta http-equiv="Access-Control-Allow-Origin" content="*"> <meta http-equiv="Access-Control-Allow-Origin" content="http://www.baidu.com">
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。