利用Ajax传递Xml文档

  客户端

  <script language="javascript">

  //生成XML文件

  function GetAllFormData()

  {

  var strXML = "<Client>\r\n<FormData>\r\n";

  strXML += "<UserName>bccu</UserName>"

  strXML += "<Age>25</Age>";

  strXML += "</FormData>\r\n</Client>"

  return strXML;

  }

  ///向服務器发送XML文档

  function Send(Str,URL)

  {

  var Http = new ActiveXObject("Microsoft.XMLHTTP")

  Http.open("POST",URL,false)

  Http.send(Str)

  return Http.responseText;

  }

  ///获得XML中指定的节的值

  function GetXMLNodeValue(strXML,nodeName)

  {

  var Dom = new ActiveXObject("Microsoft.XMLDOM")

  Dom.async=false

  Dom.loadXML(strXML)

  if(Dom.parseError.errorCode != 0)

  {

  delete(Dom)

  return(false)

  }

  else

  {

  var node = Dom.documentElement.selectSingleNode("//"+nodeName);

  if(node)

  nodeValue = node.text;

  delete(Dom)

  return(nodeValue);

  }

  }

  function Test()

  {

  var tmp       = Send(GetAllFormData(),"./test.aspx");

  var name      = GetXMLNodeValue(tmp,"UserName");

  var password  = GetXMLNodeValue(tmp,"Age");

  }

  </script>

  服务器端(test.cs)

  System.IO.Stream stream = Request.InputStream

  System.Xml.XmlDocument doc = new XmlDocument();

  try

  {

  doc.Load(stream); //加载发送过来的Xml文档

  }

  catch

  {

  byte[] buffer = new byte[stream.Length];

  stream.Read(buffer,0,buffer.Length);

  string strXML = System.Text.UnicodeEncoding.Default.GetString(buffer,0,buffer.Length);

  doc.LoadXml(strXML);

  }

  //将doc处理后输出以便返回到客户端(此处省略)

  response.write("")