09---Ajax03(返回xml数据)
来源:互联网 发布:粉笔上的数据如何重置 编辑:程序博客网 时间:2024/05/16 08:06
为了更好的理解关于Ajax操作xml的部分,所以下面的程序将通过一个普通的静态的xml文件,来观察一些
ajax中的接受
xml的返回效果;
范例:有如下的一段xml文件---allarea.xml;
<?xml version="1.0" encoding="gbk"?>
<allerea>
<area>
<id>1</id>
<title>北京</title>
</area>
<area>
<id>2</id>
<title>天津</title>
</area>
<area>
<id>3</id>
<title>南京</title>
</area>
</allerea>
该xml文件在虚拟目录的项目中;
<html>
<head>
<scripte>
var xmlHttp;
var flag=false;
function createXMLHttp(){
if(window.XMLHttpRequest){//判断当前使用的浏览器
xmlHttp=new XMLHttpRequest();//表示是使用的FireFox内核的浏览
器
}esle{ //表示使用的是ie浏览器
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
function getCity(){
createXMLHttp();
xmlHttp.open("POST","allarea.xml");
xmlHttp.onreadystatechange=getCityCallback;
xmlHttp.send(null);
}
function getCityCallback(){
if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
//取得全部的allarea下的节点
var
allarea=xmlHttp.responseXML.getElementsByTagName("allarea")[0].childNodes;
var select =document.getElementById("city");
select.lenth=1;
select.option[0].selected=true;
for(var i=0;i<allarea.length;i++){
var area=allarea[i];
var option=document.createElement("option")
var id=area.getElementsByTagName("id")
[0].firstChild.nodeValue;
var title=area.getElementsByTagName
("title")[0].firstChild.nodeValue;
option.setAttribute("value",id);
option.appendChild(document.createTextNode
(title))
select.appendChild(option);
}
}
}
funcition checkForm(){
return flag;
}
</script>
</head>
<body>
<form action="regist.jsp" method="post" onsubmit="return checkForm()">
请选择喜欢的城市:
<select name="city">
<option value="0">-请选择城市-</option>
</select>
<input type="submit" value="注册">
<input type="reset" value="重置">
</form>
</body>
</html>
虽然是返回了数据,只是所有的数据都是静态的,如果想让数据更有意义,则可以结合DOM
解析完成,如果觉得DOM解析过于麻烦,也可以使用JDOM完成,本次使用DOM解析完成操作;
创建一个servlet:
package city.lid.servlet;
import java.sql.*;
import java.io.*;
import org.w3c.dom.*;//导入DOM操作的包
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class CheckServlet extends HttpServlet{
public void doGet(HttpServletRequest request,HttpServletResponse response) throws
ServletException,IOException{
this.doPost(request,response);
}
public void doPost(HttpServletRequest request,HttpServletResponse response) throws
ServletException,IOException{
response.setContentType("text/xml;charset=GBK");
PrintWriter out=response.getWriter();
ByteArrayOutputStream bos=new ByteArrayOutputStream();
try{
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document doc =builder.newDocument() ;
String data[]={"北京","南京","济南",};
Element allarea=doc.createElement("allarea");
for(int x=0;x<data.length;x++){
Element area=doc.createElement("area");
Element id=doc.createElement("id");
Element title=doc.createElement("title");
id.appendChild(doc.createTextNode(""+(x+1)));
title.appendChild(doc.createTextNode(data[x]));
area.appendChild(id);
area.appendChild(title);
area.appendChild(area);
}
doc.appendChild(allarea);
TransformerFactory tf=TransformerFactory.newInstance();
Transformer t=tf.newTransformer();
t.setOutputProperty(OutputKeys.ENCODING,"GBK");
DOMSource source=new DOMSource();
StreamResult result=new StreamResult(bos);
t.transform(source,result);
out.println(doc);
}
catch(Exception e){
}
}
}
在web.xml中配置该servlet;
- 09---Ajax03(返回xml数据)
- ajax03
- Ajax返回XML数据
- 网络数据解析(解析返回的xml数据形式)
- struts返回xml数据例子
- 从DataSet 返回XML 数据
- django 返回xml数据方法
- Struts2 返回 xml 格式数据
- Struts2如何返回XML数据
- SpringMVC -Controller返回xml数据
- Ajax返回xml类型数据
- 技巧-解析XML返回数据(使用GBK编码)
- ajax请求返回xml数据(含服务端代码)
- 返回xml数据的存储过程
- 获取XML字符串,返回DataSet数据集
- XMLHttpRequest处理xml格式的返回数据
- Ajax servlet 返回xml数据乱码问题
- JAVA 获取http返回XML的数据
- Android ListView几个属性详解
- 探索推荐引擎内部的秘密,第 1 部分: 推荐引擎初探
- 09---Ajax02(异步验证)
- Chart 图表一例
- Autoit3全能反编译器
- 09---Ajax03(返回xml数据)
- 探索推荐引擎内部的秘密,第 2 部分: 深入推荐引擎相关算法 - 协同过滤
- Excel—“撤销工作表保护密码”的破解并获取原始密码
- 探索推荐引擎内部的秘密,第 3 部分: 深入推荐引擎相关算法 - 聚类
- CentOS上搭建Nginx + Mono 运行 asp.net
- careercup2.4
- 【算法】组合数学——排列数生成算法详解(一)
- winpdb调试python3
- oracle 基本函数