前面文章处理的文本数据,今天终于把处理XML数据调试通过了。。。
Js中主要是回调函数的处理不同:
- function callback(){
- //判断对象交互
- if(xmlhttp.readyState == 4){
- //判断http交互
- if(xmlhttp.status == 200){
- //使用responseXML的方式来接收XML数据对象的DOM对象
- var domObj = xmlhttp.responseXML;
- if(domObj){
- //DOM中使用getElementsTagName根据标签名来获得元素节点
- var messageNodes = domObj.getElementsByTagName("message");
- if(messageNodes.length > 0){
- //获得文本内容对应的节点
- var textNode = messageNodes[0].firstChild;
- //nodeValue获得节点的文本内容
- var responseMessage = textNode.nodeValue;
- var divNode = document.getElementById("result");
- //设置元素节点的HTML内容
- divNode.innerHTML = responseMessage;
- }
- else {
- alert("messageNodes is null!" + xmlhttp.responseText);
- }
- }
- else{
- alert("responseXML Error:" + xmlhttp.responseText);
- }
- }
- else {
- alert("出错了。。。");
- }
- }
- }
下面是JQuery处理XML。。。
- function verify(){
- var obj = $("#username");
- var name = obj.val();
- var a = {name:"123",age:23};
- $.ajax({
- type: "POST",
- url: "AJAXXMLServer",
- //web.xml对应配置
- //<servlet-mapping>
- // <servlet-name>AJAXXMLServer</servlet-name>
- // <url-pattern>/AJAXXMLServer</url-pattern>
- //</servlet-mapping>
- data: "name=" + name,
- dataType: "xml",
- success: callback
- });
- $.get("AJAXXMLServer?name="+name,null,callback);
- }
- //回调函数
- function callback(data){
- var jqueryObj = $(data);
- var message = jqueryObj.children();
- var text = message.text();
- var resultObj = $("#result");
- resultObj.html(text);
- alert("");
- }
服务器端Servlet拼装XML数据。。。
- String old = request.getParameter("name");
- StringBuilder builder = new StringBuilder();
- builder.append("<message>");
- if(old == null || old.length() == 0) {
- builder.append("用户名不能为空").append("</message>");
- }
- else {
- //把返回拼装成XML格式
- String name = old;
- if(name.equals("gqh")){
- builder.append("用户["+name+"]已经存在,请使用其它用户!").append("</message>");
- }
- else{
- builder.append("用户["+name+"]尚不存在,可以使用该用户!").append("</message>");
- }
- }
- out.println(builder.toString());