zoukankan      html  css  js  c++  java
  • ajax和json

    1.XML数据user.xml

    <?xml version="1.0" encoding="utf-8" ?>
    <users>
    <user>
    <username>张三XML</username>
    <age>33</age>
    </user>
    <user>
    <username>李四XML</username>
    <age>34</age>
    </user>
    </users>

    2.JSON数据user.js

    [
    { username : "张三JSON", age : 33},
    { username : "李四JSON", age : 34}
    ]

    3.HTML页面代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
            table,td,th{border:solid 1px silver;border-collapse: collapse;text-align: center;}
            th,td{ 100px;height: 20px;}
        </style>
        <script>
            function getxml(){
                var xmlhttp=new XMLHttpRequest();
                xmlhttp.open("get","test.xml?randm="+Math.random(),true);
                xmlhttp.onreadystatechange=function(){
                    if(xmlhttp.readyState==4&&xmlhttp.status==200){
                        var result=xmlhttp.responseXML;//获取放回的xml数据主体内容
                        var users=result.getElementsByTagName("user");//获取user节点元素
                        for(var i=0;i<users.length;i++){
                            var user=users[i];//获取单个user信息
                            var username=user.getElementsByTagName("username")[0].firstChild.nodeValue;//获取user具体内容
                            var age=user.getElementsByTagName("age")[0].firstChild.nodeValue;
                            appendrow(username,age);//添加行
                        }
                    }
                }
                xmlhttp.send();
            }
            //添加新行
            function appendrow(username,age){
                var ui=document.getElementById("userinfo");
                var newrow=ui.insertRow(ui.rows.length);//添加新行
                newrow.insertCell(0).innerHTML=username;//添加新的单元格
                newrow.insertCell(1).innerHTML=age;
            }
            function getjson(){
                var xmlhttp=new XMLHttpRequest();
                xmlhttp.open("get","test.json?random="+Math.random(),true);
                xmlhttp.onreadystatechange=function(){
                    if(xmlhttp.readyState==4&&xmlhttp.status==200){
                        var result=xmlhttp.responseText;
                        var users=eval("("+result+")");//使用eval函数返回的字符串变成js对象
                        for(var i=0;i<users.length;i++){
                            var user=users[i];//获取单个user信息
                            appendrow(user.username,user.age)//此处已经知道user数据的格式,故可以直接用user.username和user.age
                        }
                    }
                }
                xmlhttp.send();
            }
        </script>
    </head>
    <body>
        <input type="button" value="加载xml数据" onclick="getxml();">
        <input type="button" value="加载json数据" onclick="getjson();">
        <br/>
        <br/>
        <table id="userinfo">
            <thead>
                <tr>
                    <th>姓名</th>
                    <th>年龄</th>
                </tr>
            </thead>
            <tbody>
                
            </tbody>
        </table>
    </body>
    </html>


    运行页面,点击"加载XML数据"按钮,会从XML数据文件中读取数据并添加至表格中;点击"加载JSON数据"按钮,会从js文件中读取数据并添加至表格.

    注意关键字

    onreadystatechange (全部小写)

    xmlhttp.readyState

    XMLHttpRequest

    responseXML

    getElementsByTagName

    getElementById

    firstChild.nodeValue

    innerHTML

    responseText

  • 相关阅读:
    左孩子右兄弟的字典树
    UVA 1401 Remember the Word
    HDOJ 4770 Lights Against Dudely
    UvaLA 3938 "Ray, Pass me the dishes!"
    UVA
    Codeforces 215A A.Sereja and Coat Rack
    Codeforces 215B B.Sereja and Suffixes
    HDU 4788 Hard Disk Drive
    HDU 2095 find your present (2)
    图的连通性问题—学习笔记
  • 原文地址:https://www.cnblogs.com/aten/p/8576379.html
Copyright © 2011-2022 走看看