Ajax实现异步操作实例_针对XML格式的请求数据

js分类中有一节【原生js异步请求,XML解析】主要说明了js前台是如何处理XML格式请求和如何接受由服务器返回的XML数据的解析,今天我将用一个实例来说明具体要如何操作.

前台的参数类型也是XML使用的是jquery:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
     function test(){
     var  xmlString = "<bookstore>" +
                     "<book Type='必修课' ISBN='7-111-19149-2'>" +
                     "<title>数据结构</title>" +
                     "<author>严蔚敏</author>" +
                     "<price>30.00</price>" +
                     "</book></bookstore>" ;
 
     $.ajax({
     type:  "post" ,
     url:  "Hand/Ajax.ashx" ,
     data:  "strxml=" +xmlString,
     datatype: "xml" ,
     success: function(xml){
         //根据resultText更新页面
         alert( "success" );
         alert($(xml).find( 'Table1' ).find( 'title' ).text());
     },
     error:function(XMLResponse){alert(XMLResponse.responseText)}
});
}

  前台出入的是XML格式的参数,后台该如何操作呢?这个有针对XML读写,这里就简单的说明一下:

1
2
XmlDocument xdoc =  new  XmlDocument();<br> //xml字符串操作
xdoc.LoadXml(strxml); //读取xml字符串strxml
// Add a price element.添加一个节点
   XmlElement newElem = doc.CreateElement("price");
   newElem.InnerText = "10.95";
   doc.DocumentElement.AppendChild(newElem);//添加一个节点
1
xdoc.Load(fileName); //读取xml文件fileName是文件的路径

  以上简单说明LoadXml和Load简单用法,这里就不做详细说明。下面是后台处理前台的xml格式的参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 得到根节点bookstore
XmlNode xn = xdoc.SelectSingleNode( "bookstore" );
// 得到根节点的所有子节点
XmlNodeList xnl = xn.ChildNodes;
// 将节点转换为元素,便于得到节点的属性值
XmlElement xe = (XmlElement)(xnl.Item(0));
// 得到Type和ISBN两个属性的属性值
string  bookISBN = xe.GetAttribute( "ISBN" ).ToString();
string  bookType = xe.GetAttribute( "Type" ).ToString();
// 得到Book节点的所有子节点
XmlNodeList xnl0 = xe.ChildNodes;
string  bookName = xnl0.Item(0).InnerText;
string  bookAuthor = xnl0.Item(1).InnerText;
double  bookPrice = Convert.ToDouble(xnl0.Item(2).InnerText);

  后台处理之后,返回xml格式的数据,当然这个前提context.Response.ContentType = "text/xml";

1
2
3
4
DataSet ds =  new  DataSet();
ds = GetList();
context.Response.Clear();
context.Response.Write(ds.GetXml()); 

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private  DataSet GetList()
{
     DataSet ds =  new  DataSet();
     DataTable dt =  new      DataTable();
     dt.Columns.Add( "title" );
     dt.Columns.Add( "author" );
     dt.Columns.Add( "price" );
     DataRow dr = dt.NewRow();
     dr[ "title" ] =  "book1" ;
     dr[ "author" ] =  "matest" ;
     dr[ "price" ] = 30.01;
     dt.Rows.Add(dr);
     ds.Tables.Add(dt);
     return  ds;
}

这个是jQuery+Ajax+xml的应用

分类:  ASP.NET, JAVASCRIPT, Jquery

本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/p/4642722.html ,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值