您的位置:首页 > Web前端 > JavaScript

AJAX解析XML(JS代码)

2011-09-21 13:01 399 查看
js 代码

<SCRIPT LANGUAGE="JavaScript">
var xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
xmlHttp.open("GET", "AJAX", true);
/* 设置处理服务器的JS函数,函数又 xmlHttp.onreadystatechange来确定 */
xmlHttp.onreadystatechange=function() {
if (xmlHttp.readyState==4 && xmlHttp.status==200) {
//ajax的XML传输的解析。获取解析的数据
var xml = xmlHttp.responseXML;

//解析标签<stusn>
//var root1=root.getElementsByTagName("stusn");
//解析<stusn>的第一个标签的nation属性
//var name = root1[0].getAttribute("nation");
var div1 = document.getElementById("ccc");
var stus = xml.getElementsByTagName("stu");
for(var i = 0 ; i < stus.length ; i++){
var dl = document.createElement("dl");
var dt = document.createElement("dt");
var dd = document.createElement("dd");
//在div的最前面添加元素
div1.insertBefore(dl,div1.firstChild);
dl.appendChild(dt);
dl.appendChild(dd);
//设置元素的值
dt.innerHTML = "姓名:" + stus[i].getElementsByTagName("name")[0].firstChild.data;
dd.innerHTML = "年龄:" + stus[i].getElementsByTagName("age")[0].firstChild.data;
}
}
}
xmlHttp.send();
</script>


后台处理代码

java 代码

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class AJAXParseXML extends HttpServlet {

/**
* Constructor of the object.
*/
public AJAXParseXML() {
super();
}

/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

//如果要传输XML,则需要设置传输的类型为text/xml
response.setContentType("text/xml;charset=gb2312");
response.setHeader("Cache-Control","no-cache");
PrintWriter out = response.getWriter();
//      out.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
//      out.println("<stusn nation=\"china1\" ></stusn>");
TestXML tx = new TestXML();
tx.sendXML(out);
out.close();
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

}

public void init() throws ServletException {
// Put your code here
}

}


产生XML文档的代码

java 代码

import java.io.FileOutputStream;
import java.io.OutputStream;
import java.io.PrintWriter;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;
import org.w3c.dom.Element;

public class TestXML {

public void sendXML(PrintWriter os){
Document doc ;
Element stus;
Element stu;
Element name;
Element age;
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

try {
DocumentBuilder db = dbf.newDocumentBuilder();

doc = db.newDocument();

stus = doc.createElement("stusn");

stu = doc.createElement("stu");

name = doc.createElement("name");
name.appendChild(doc.createTextNode("andrii"));

age = doc.createElement("age");
age.appendChild(doc.createTextNode("27"));

stu.appendChild(name);
stu.appendChild(age);

stus.setAttribute("nation", "china");
stus.appendChild(stu);

doc.appendChild(stus);

TransformerFactory tf = TransformerFactory.newInstance();

Transformer ts = tf.newTransformer();
//          ts.transform(new DOMSource(doc), new StreamResult(new FileOutputStream("D:/test.xml")));
ts.transform(new DOMSource(doc), new StreamResult(os));

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: