Ajax實現異步操作實例_針對XML格式的請求數據


js分類中有一節【原生js異步請求,XML解析】主要說明了js前台是如何處理XML格式請求和如何接受由服務器返回的XML數據的解析,今天我將用一個實例來說明具體要如何操作.

前台的參數類型也是XML使用的是jquery:

    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讀寫,這里就簡單的說明一下:

XmlDocument xdoc = new XmlDocument();
//xml字符串操作 xdoc.LoadXml(strxml);//讀取xml字符串strxml
// Add a price element.添加一個節點
   XmlElement newElem = doc.CreateElement("price");
   newElem.InnerText = "10.95";
   doc.DocumentElement.AppendChild(newElem);//添加一個節點
xdoc.Load(fileName);//讀取xml文件fileName是文件的路徑

  以上簡單說明LoadXml和Load簡單用法,這里就不做詳細說明。下面是后台處理前台的xml格式的參數

// 得到根節點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";

DataSet ds = new DataSet();
ds = GetList();
context.Response.Clear();
context.Response.Write(ds.GetXml()); 

  

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM