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

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();   

        }   

    }   

}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息