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>"<bookstore>"</code><code>+</code>
<code> </code><code>"<book Type='必修課' ISBN='7-111-19149-2'>"</code><code>+</code>
<code> </code><code>"<title>資料結構</title>"</code><code>+</code>
<code> </code><code>"<author>嚴蔚敏</author>"</code><code>+</code>
<code> </code><code>"<price>30.00</price>"</code><code>+</code>
<code> </code><code>"</book></bookstore>"</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();<br></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,如需轉載請自行聯系原作者