AJAX解析XML
2007-11-30 11:28
330 查看
js 代码:
<script>"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;
//解析标签
//var root1=root.getElementsByTagName("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.
*/
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 {
//如果要传输X
4000
ML,则需要设置传输的类型为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("
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();
}
}
}
<script>"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;
//解析标签
//var root1=root.getElementsByTagName("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.
*/
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 {
//如果要传输X
4000
ML,则需要设置传输的类型为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("
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();
}
}
}
相关文章推荐
- Ajax 解析XML
- Ajax解析之一——XMLHTTPRequest对象的方法和属性
- JavaScript学习5---Ajax返回xml文档及其解析
- 正确用JQ的AJAX加载XML并解析
- javascript 解析ajax返回的xml和json格式的数据
- Ajax解析XML
- ajax解析XML
- ajax解析xml问题说明
- EXTJS AJAX 解析 XML 数据
- AJAX解析XML实例之下拉框二级联动
- JQuery解析xml的两种方式$.get和$.ajax
- Ajax实现xml文件数据插入数据库(一)--- 构建解析xml文件的js库
- 利用Ajax解析xml
- [JavaScript][AJAX]Servlet与AJAX引擎互发XML并解析
- jQuery使用ajax传输xml文档在IE中无法正确解析的问题
- javascript 解析ajax返回的xml和json格式的数据
- Ajax解析xml中的数据
- 在jQuery中利用AJAX加载XML数据并解析
- Javascript(AJAX)解析XML的代码(兼容FIREFOX/IE)
- [未解决]Ajax-读取并解析XML,动态生成select下拉列表框