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的应用