做了几个简单的实例,加载txt文本内容、加载xml文件内容,把xml文本内容转换成html表格显示。废话不多说,直接贴代码:
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/html"> <head> <title>通过ajax获取文本内容</title> <meta charset="utf-8"> <script> //加载文件 var loadTextByAjax = function(type){ //第一步,创建XMLHttpRequest对象 var xmlhttp; if(window.XMLHttpRequest){// Firefox, Opera 8.0+, Safari, IE7 xmlhttp = new XMLHttpRequest(); }else{// Old IE xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); console.log("old IE"); } //第二步,编写回调函数 xmlhttp.onreadystatechange = function load(){ if(xmlhttp.readyState === 4 && xmlhttp.status === 200){ document.getElementById(‘status‘).innerHTML = xmlhttp.status; document.getElementById(‘readyState‘).innerHTML = xmlhttp.readyState; if(type === ‘txt‘){ document.getElementById("content").innerHTML= xmlhttp.responseText; } if(type === ‘xml‘){ document.getElementById("content").innerHTML= xmlhttp.responseText; } if(type === ‘table‘){ transform(); } } } //第三步,使用open()方法指定服务器地址 switch (type){ case ‘txt‘ : xmlhttp.open("GET","Resources/test.txt",true); break; case ‘xml‘ : xmlhttp.open("GET","Resources/xml.xml",true); break; case ‘table‘ : xmlhttp.open("GET","Resources/xml.xml",true); break; } //第四步,发送请求 xmlhttp.send(); //xml转换html表格显示 var transform = function(){ var table = "<table border=‘1‘ style=‘color: blue‘>";//1 table = table +"<tr><td>书名</td><td>作者</td><td>出版时间</td><td>价格</td></tr>" var content = xmlhttp.responseXML.documentElement.getElementsByTagName(‘book‘);//获取遍历循环的内容 var i = 0; for(i = 0; i<content.length; i++){ table = table + "<tr>"//2 var tr = content[i].getElementsByTagName(‘title‘); { try{ table = table + "<td>"+tr[0].firstChild.nodeValue+"</td>";//3 }catch(er) { table = table + "<td> </td>";//3 } } var tr = content[i].getElementsByTagName(‘author‘); { try{ table = table + "<td>"+tr[0].firstChild.nodeValue+"</td>";//3 }catch(er) { table = table + "<td> </td>";//3 } } var tr = content[i].getElementsByTagName(‘year‘); { try{ table = table + "<td>"+tr[0].firstChild.nodeValue+"</td>";//3 }catch(er) { table = table + "<td> </td>";//3 } } var tr = content[i].getElementsByTagName(‘price‘); { try{ table = table + "<td>"+tr[0].firstChild.nodeValue+"</td>";//3 }catch(er) { table = table + "<td> </td>";//3 } } table = table +"</tr>"; } table = table +"</table>"; document.getElementById(‘content‘).innerHTML = table;//把获取的转换后的table插入页面元素 } } </script> </head> <body> <div style="border:1px solid black;font: 16px;font-family: 黑体"> 通过ajax方式改变内容哦:</br> Status:<span id="status"></span></br> ReadyState:<span id="readyState"></span></br> responseText:<span id="content">哈哈哈哈</span></br> <button onclick="loadTextByAjax(‘txt‘)">点我加载txt文本内容</button> <button onclick="loadTextByAjax(‘xml‘)">点我加载xml内容</button> <button onclick="loadTextByAjax(‘table‘)">点我xml转换成table</button> </div> </body> </html>
下面是xml.xml文件内容,可直接复制粘贴内容:
<bookstore> <book category="children"> <title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book category="cooking"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> <book category="web" cover="paperback"> <title lang="en">Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price> </book> <book category="web"> <title lang="en">XQuery Kick Start</title> <author>James McGovern</author> <author>Per Bothner</author> <author>Kurt Cagle</author> <author>James Linn</author> <author>Vaidyanathan Nagarajan</author> <year>2003</year> <price>49.99</price> </book> </bookstore>
文本内容test.txt文本内容:
the is a first content,so easy !
虽然例子比较简单,但是好记性不如烂笔头嘛,整理一下留个笔记,方便以后观看学习。
本文出自 “Do、IT” 博客,请务必保留此出处http://yangscto.blog.51cto.com/8374342/1426913
原文地址:http://yangscto.blog.51cto.com/8374342/1426913