天天看点

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

<code>    </code><code>function test(){</code>

<code>    </code><code>var</code> <code>xmlString =</code><code>"&lt;bookstore&gt;"</code><code>+</code>

<code>                    </code><code>"&lt;book Type='必修课' ISBN='7-111-19149-2'&gt;"</code><code>+</code>

<code>                    </code><code>"&lt;title&gt;数据结构&lt;/title&gt;"</code><code>+</code>

<code>                    </code><code>"&lt;author&gt;严蔚敏&lt;/author&gt;"</code><code>+</code>

<code>                    </code><code>"&lt;price&gt;30.00&lt;/price&gt;"</code><code>+</code>

<code>                    </code><code>"&lt;/book&gt;&lt;/bookstore&gt;"</code><code>;</code>

<code>    </code><code>$.ajax({</code>

<code>    </code><code>type: </code><code>"post"</code><code>,</code>

<code>    </code><code>url: </code><code>"Hand/Ajax.ashx"</code><code>,</code>

<code>    </code><code>data: </code><code>"strxml="</code><code>+xmlString,</code>

<code>    </code><code>datatype:</code><code>"xml"</code><code>,</code>

<code>    </code><code>success: function(xml){</code>

<code>        </code><code>//根据resultText更新页面</code>

<code>        </code><code>alert(</code><code>"success"</code><code>);</code>

<code>        </code><code>alert($(xml).find(</code><code>'Table1'</code><code>).find(</code><code>'title'</code><code>).text());</code>

<code>    </code><code>},</code>

<code>    </code><code>error:function(XMLResponse){alert(XMLResponse.responseText)}</code>

<code>});</code>

<code>}</code>

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

<code>XmlDocument xdoc = </code><code>new</code> <code>XmlDocument();&lt;br&gt;</code><code>//xml字符串操作</code>

<code>xdoc.LoadXml(strxml);</code><code>//读取xml字符串strxml</code>

<code>xdoc.Load(fileName);</code><code>//读取xml文件fileName是文件的路径</code>

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

<code>// 得到根节点bookstore</code>

<code>XmlNode xn = xdoc.SelectSingleNode(</code><code>"bookstore"</code><code>);</code>

<code>// 得到根节点的所有子节点</code>

<code>XmlNodeList xnl = xn.ChildNodes;</code>

<code>// 将节点转换为元素,便于得到节点的属性值</code>

<code>XmlElement xe = (XmlElement)(xnl.Item(0));</code>

<code>// 得到Type和ISBN两个属性的属性值</code>

<code>string</code> <code>bookISBN = xe.GetAttribute(</code><code>"ISBN"</code><code>).ToString();</code>

<code>string</code> <code>bookType = xe.GetAttribute(</code><code>"Type"</code><code>).ToString();</code>

<code>// 得到Book节点的所有子节点</code>

<code>XmlNodeList xnl0 = xe.ChildNodes;</code>

<code>string</code> <code>bookName = xnl0.Item(0).InnerText;</code>

<code>string</code> <code>bookAuthor = xnl0.Item(1).InnerText;</code>

<code>double</code> <code>bookPrice = Convert.ToDouble(xnl0.Item(2).InnerText);</code>

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

<code>DataSet ds = </code><code>new</code> <code>DataSet();</code>

<code>ds = GetList();</code>

<code>context.Response.Clear();</code>

<code>context.Response.Write(ds.GetXml()); </code>

  

<code>private</code> <code>DataSet GetList()</code>

<code>{</code>

<code>    </code><code>DataSet ds = </code><code>new</code> <code>DataSet();</code>

<code>    </code><code>DataTable dt = </code><code>new</code>     <code>DataTable();</code>

<code>    </code><code>dt.Columns.Add(</code><code>"title"</code><code>);</code>

<code>    </code><code>dt.Columns.Add(</code><code>"author"</code><code>);</code>

<code>    </code><code>dt.Columns.Add(</code><code>"price"</code><code>);</code>

<code>    </code><code>DataRow dr = dt.NewRow();</code>

<code>    </code><code>dr[</code><code>"title"</code><code>] = </code><code>"book1"</code><code>;</code>

<code>    </code><code>dr[</code><code>"author"</code><code>] = </code><code>"matest"</code><code>;</code>

<code>    </code><code>dr[</code><code>"price"</code><code>] = 30.01;</code>

<code>    </code><code>dt.Rows.Add(dr);</code>

<code>    </code><code>ds.Tables.Add(dt);</code>

<code>    </code><code>return</code> <code>ds;</code>

这个是jQuery+Ajax+xml的应用

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

继续阅读