jquery 操作xml 和ajax 操作xml
因为之前没有操作过xml文件,现学的,一开始是js 创建的操作xml 的对象,所有功能都完成以后,正式测试,发现居然垮掉了,只能改用jquery别的办法,js好多浏览器不兼容,可是定时刷新时,总会出现错误,改用ajax读取数据。
xml 文件格式为,名称为aaa.xml
1 <paistore> 2 <pai id="1"> 3 <image>第一名</image> 4 <name>张三</name> 5 <amount>11600</amount> 6 </pai> 7 <pai id="3"> 8 <image>第三名</image> 9 <name>李四</name> 10 <amount>9600</amount> 11 </pai> 12 <pai id="7"> 13 <image>第四名</image> 14 <name>王五</name> 15 <amount>7700</amount> 16 </pai> 17 </paistore>
前台jquery写法:
1 $.ajax({ 2 url: 'aaa.xml', 3 type: 'GET', 4 dataType: 'xml', 5 timeout: 1000, 6 cache: false, 7 error: function (xml) { 8 alert('加载XML文档出错'); 9 }, 10 success: function (xml) { 11 //建立一个代码片段 12 //遍历所有pai节点 13 $(xml).find("pai").each(function (i) { 14 var imgs = $(this).children("image"); 15 var image = imgs.text(); 16 var names = $(this).children("name"); 17 var name = names.text(); 18 var amounts = $(this).children("amount"); 19 var amount = amounts.text(); 20 }) 21 } 22 })
ajax 后台操作xml: pai 为一个类 包含xml 节点的三个属性 image,name,amount
1 public void GetaaaXml(HttpContext context) 2 { 3 XmlDocument xmldoc = new XmlDocument(); 4 xmldoc.Load(HttpContext.Current.Server.MapPath("/aaa.xml")); 5 XmlNodeList xmlNodeList = xmldoc.SelectNodes("/paistore/pai"); 6 List<Pai> pailist = new List<Pai>(); 7 for (int i = 0; i < xmlNodeList.Count; i++) 8 { 9 XmlNode xmlNode = xmlNodeList[i]; 10 Pai modpai=new Pai(); 11 modpai.Image=xmlNode["image"].InnerText; 12 modpai.Name = xmlNode["name"].InnerText; 13 modpai.Amount = xmlNode["amount"].InnerText; 14 pailist.Add(modpai); 15 } 16 JavaScriptSerializer serializer = new JavaScriptSerializer(); 17 string jsondata=serializer.Serialize(pailist); 18 context.Response.Write("{\"content\":"+jsondata+"}"); 19 20 }