DOM解析XML文件

简介: 首先是定义一个XML文件,文件名为student.xml,代码如下:       05205020227    YJ    女        05205020228    YKF    男  ...
+关注继续查看

首先是定义一个XML文件,文件名为student.xml,代码如下:

<?xml version="1.0" encoding="utf-8" ?>
<classmates>
  <student>
    <sid>05205020227</sid>
    <sname>YJ</sname>
    <sex>女</sex>
  </student>
  <student>
    <sid>05205020228</sid>
    <sname>YKF</sname>
    <sex>男</sex>
  </student>
  <student>
    <sid>05205020229</sid>
    <sname>ZDW</sname>
    <sex>男</sex>
  </student>
  <student>
    <sid>05205020230</sid>
    <sname>ZGJ</sname>
    <sex>男</sex>
  </student>
</classmates>

接下来就是一个网页文件,嵌入javascript脚本代码,如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Dom解析HTML</title>
    <script language="javascript" type="text/javascript">
        var XMLHttpReq;
        var url = "student.xml";
        function createXMLHttpRequest()
        {
            if(window.XMLHttpRequest)
            {
                XMLHttpReq = new XMLHttpRequest(); //Mozilla浏览器
            }
            else if(window.ActiveXObject)
            {
                try
                {
                    XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
                }
                catch(e)
                {
                    try
                    {
                        XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
                    }
                    catch(e)
                    {
                       
                    }
                }
            }
        }
       
        //发送请求的函数
        function sendRequest()
        {
            createXMLHttpRequest();
            XMLHttpReq.onreadystatechange = processResponse;
            XMLHttpReq.open("GET",url,true);
            XMLHttpReq.send(null);
        }
       
        //处理响应的函数
        function processResponse()
        {
            if(XMLHttpReq.readyState==4)//判断对象状态
            {
                if(XMLHttpReq.status==200)//信息已经成功返回,开始处理信息
                {
                    readXml();
                }
                else
                {
                    //页面不正常
                    window.alert(XMLHttpReq.statusText);
                    window.alert("请求的页面有异常");
                }               
            }
        }
       
        //读取XML文档中的数据信息的函数,既是解析函数
        function readXml()
        {
            var table = document.createElement("table");
            table.setAttribute("border","1");
            table.setAttribute("width","600");
            document.body.appendChild(table);
            var caption = "学生信息"+url;
            table.createCaption().appendChild(document.createTextNode(caption));
            var header = table.createTHead();
            var headerrow = header.insertRow(0);
            headerrow.insertCell(0).appendChild(document.createTextNode("学号"));
            headerrow.insertCell(1).appendChild(document.createTextNode("姓名"));
            headerrow.insertCell(2).appendChild(document.createTextNode("性别"));
           
            var students = XMLHttpReq.responseXML.getElementsByTagName("student");
            for(var i=0;i<students.length;i++)
            {
                var stud = students[i];
                var sid = stud.getElementsByTagName("sid")[0].firstChild.data;
                var sname = stud.getElementsByTagName("sname")[0].firstChild.data;
                var sex = stud.getElementsByTagName("sex")[0].firstChild.data;
                var row = table.insertRow(i+1);
                row.insertCell(0).appendChild(document.createTextNode(sid));
                row.insertCell(1).appendChild(document.createTextNode(sname));
                row.insertCell(2).appendChild(document.createTextNode(sex));
            }
           
        }
    </script>
</head>
<body>
    <form >
        <input type="button" value="解析XML文件"  onclick="sendRequest();"/>
    </form>
</body>
</html>

相关文章
|
19天前
|
XML Java 数据库连接
mybatis xml 文件热加载实现
mybatis xml 文件热加载实现
|
29天前
|
XML 存储 Java
JavaWeb-特殊文件(propertis与XML)
Properties文件 一.properties介绍 二.properties使用 三.解决中文乱码问题 XML文件 一.XML介绍 二.XML文件的语法规则 三.XML的使用
31 0
|
1月前
|
XML 存储 Java
特殊文件介绍XML Properties文件
Properties文件 一.properties介绍 二.properties使用 三.解决中文乱码问题 XML文件 一.XML介绍 二.XML文件的语法规则 三.XML的使用
82 0
|
1月前
|
XML 数据格式
|
1月前
|
XML SQL Java
解决2022.3.1版本中 IDEA中 XML文件屎黄色背景 的方法
解决2022.3.1版本中 IDEA中 XML文件屎黄色背景 的方法
58 0
|
1月前
|
XML SQL Oracle
使用mybatis 连接Oracle 数据库 xml 文件中需要注意的问题
使用mybatis 连接Oracle 数据库 xml 文件中需要注意的问题
39 0
|
1月前
|
XML 数据格式
QXmlStreamReader 读取 XML 文件卡死
如何设置使 QXmlStreamReader 能够读取 XML 文件中特殊符号
31 3
|
1月前
|
XML JavaScript 数据格式
JS 最简单的XML格式Excel表格文件
JS 最简单的XML格式Excel表格文件
32 0
|
2月前
|
XML Java Maven
IDEA创建Spring项目时没有Spring Config的XML文件
IDEA创建Spring项目时没有Spring Config的XML文件
98 0
|
3月前
|
XML 存储 自然语言处理
C++使用TinyXml(开源库)读取*.XMl文件
C++使用TinyXml(开源库)读取*.XMl文件
108 0