如何实现以下操作:
1)通过JQuery从服务端读取XML数据;
    var xmlobj;
    $.ajax({   
url:'/testdata'
,success: function(xml,s,v){
xmlobj = $(xml);
}
    });
   
   /testdata主要返回一段XML格式字符串,如
   "<?xml version=\"1.0\" encoding=\"UTF-8\"?><paras><para guid=\"testname\">textnamevalue</para></paras>"
2)修改XML对象中的元素值;
__xml.find("para[guid=testname]").each(function(){
$(this).text("editedtestnamevalue");
});
3)将XML对象数据保存至服务端;  
   $.ajax({
type:"get"
,url:'/test'
,processData: false
,data:
,success: function(data){

}
   });目前卡在3)上,求教

解决方案 »

  1.   

    用ajax post xml数据给服务器端,卡哪了?
      

  2.   

    一般都是传键值对的字符串 ,没见过传递整个xml数据的 。
      

  3.   

    这里的xml数据结构是动态的,传递整个xml数据是相当于客户端和服务端使用同一个数据对象,故没有用键值的方式
      

  4.   

    那就把xml做成string,服务器端解析。
      

  5.   

    即使xml数据结构是动态的,但你服务端肯定也有它的结构吧,所以还是用键值对比较合适,不仅是数据长度可以得到优化(在大量处理的时候,效率自然有明显改善),而且如果整个XML串超过一定长度,通过GET方式传送整个XML串还会出现数据被截断丢失的错误。POST的方法,看看AJAX.POST语法就知道了。接收和接收的处理,是后台程序员的事。
      

  6.   

    __xml.find("para[guid=testname]").each(function(){
    $(this).text("editedtestnamevalue");
    });如果仅仅是这点操作 还是给后台做吧 。
    很快的 。
      

  7.   

    提交xml哪有用get的,get是通过url传递的,数据长了怎么办? 改成post
    type:"post"其实有时候你要进行ajax操作观察可以用用firebug,他很清楚的展示了发生的一切
      

  8.   

    翻了一下网上的资料,测试代码如下
    <html xmlns="http://www.w3.org/1999/xhtml" lang="UTF-8">
    <head>
    <title>home</title>
    <script type="text/javascript" src="js/jquery-1.6.min.js" ></script>
    <script type="text/javascript">
    $(function(){
    var objxml;
    $.ajax({
    type:"get"
    ,url:'/testdata'
    ,success: function(xml,s,v){
    objxml = $(xml);
    }
    });
    $("#btnsubmit").click(function(){
    alert(objxml);
    $.ajax({
    type:"get"
    ,url:'/test?x=' + Math.random()
    ,processData: false
    ,data:objxml
    ,error:function()
    {alert("K");}
    ,success: function(data){
    alert(data);
    }
    });
    });
    });
    </script>
    </head>
    <body>
    <input type="button" id= "btnsubmit" value="submit" />
    </body>
    </html>服务端代码如下
    package test;import java.io.IOException;
    import javax.servlet.http.*; 
    import java.io.*;
    @SuppressWarnings("serial")
    public class test extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
    throws IOException { req.setCharacterEncoding("UTF-8");
    resp.setCharacterEncoding("UTF-8");
    String __data = readXMLFromRequestBody(req);
    resp.getWriter().println(__data);
    }
    private String readXMLFromRequestBody(HttpServletRequest request){
            StringBuffer xml = new StringBuffer();
            try {
                BufferedReader reader = request.getReader();
                while(true)
                {
                 String line = reader.readLine();
                 if(line!=null)
                 {
                 xml.append(line);
                 }
                 else
                 {
                 break;
                 }
                }
            }
            catch(Exception e) {
                System.out.println("Error reading XML: " + e.toString());
            }
            return xml.toString();
        }
    }现在的问题是String __data取值总是空值
    还有一个问题是type改为post,提交后走了error:function请各位帮忙啊
      

  9.   

    objxml = $(xml);
    改成
    objxml = xml;试试看呢
      

  10.   

    暂时使用把xml对象转变为字符串的方法用参数提交但在改为POST方式时无法提交到指定页面,看到网上有说JQuery文件不对,下载了最新的还是出现此问题,有没有碰到该情况的…………这里暂时用GET
      

  11.   

    GET能拿 POST不能 ?
    你接受的方法错了吧 ?
      

  12.   

    举例吧。  随便用,我用post举例。
    页面代码$(document).ready(function(){//页面加载时执行
    $.ajax({
    data:{"参数名","参数值"}
    dataType:"html",
    success:function(html){}
    })
    })
    还有路径什么的我就不写上了哈。 后台页面的代码。比如就在
    void page_load
    {
    //后台页面加载的时候执行,这个你可以给你的项目一个专门的后台解析页面。用$.ajaxstec*(*^忘记怎么写了,定义好,以后不再定义,就写传送的参数。
    if(request.from["参数名"]!=null)
    {
    //如果取值不为空,证明接受到这个参数了。
    resphones.clear();
    resphones.write(request.from["参数名"].tostring());
    resphones.end();
    }
    }大概就是这样嘛。request.from["参数名"]就是取post方式传过来的值的。 然后你在后台折腾好了就返回一个文本或者 html代码回去。如果
    $.ajax({
    data:{"参数名","参数值"}
    dataType:"html",//这里换成XML。那么你就要往页面写一个XML文件,返回回来的就直接是个XML
    success:function(html){}
      

  13.   

    数据可能会比较大得话,一般都会用post把传string 得话 dataType:"text" 可以用吗? 还有其他的datatype试试 http://jqapi.com/#p=jQuery.ajax如果出错的话 看看具体什么错, error(jqXHR, textStatus, errorThrown)可以分别试试jq 1.4.2 和1.5.2这两个版本,因为1.5+重写了ajax
      

  14.   

    刚刚url拿.jsp / .html文件试了一下,用POST是成功的,但是url为servlet时失败,不知道是为什么