zoukankan      html  css  js  c++  java
  • xml的解析及案例的分析和分享

    HTML的文档如下:



    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
    table {
    border: 1px solid #000;
    500px;
    margin: 0 auto;
    border-collapse: collapse;
    }
    th {
    height: 40px;
    line-height: 40px;
    background-color: #ccc;
    border: 1px solid #000;
    }
    td {
    text-align: center;
    border: 1px solid #000;
    }
     
    </style>
    </head>
    <body>

    <button id='getInfo'>获取数据</button>
    <table>
    <thead>
    <tr>
    <th>姓名</th>
    <th>性别</th>
    <th>年龄</th>
    <th>描述</th>
    </tr>
    </thead>
    <tbody>
    <!-- <tr>
    <td>张飞</td>
    <td>男</td>
    <td>18</td>
    <td>不错</td>
    </tr> -->
    </tbody>
    </table>

    <script>

    // 思路:
    // 1. 给按钮添加点击事件
    // 2. 发送ajax请求, 获取数据
    // 3. 得到 xml 数据, 完成渲染
    var btn = document.querySelector('#getInfo');
    var tbody = document.querySelector('tbody');

    btn.onclick = function() {
    // 1. 创建ajax对象
    var xhr = new XMLHttpRequest();
    // 2. 发送请求 get
    xhr.open('get', '13-xml.php');
    xhr.send(null);

    // 3. 处理响应
    xhr.onreadystatechange = function() {
    if (xhr.readyState === 4 && xhr.status === 200) {
    // 成功响应
    // 一般响应都是文本格式, responseText
    // 但是如果是 xml 格式, 需要使用 responseXML
    // console.log(xhr.responseText);

    // xml不支持 innerText
    // 这种方式读取, 得到的是一个 dom 对象, 可以使用dom的方法!!!
    // console.log(xhr.responseXML);

    var result = xhr.responseXML; // dom对象
    var allUsers = result.querySelectorAll('user');
    // console.log(allUsers);
    // console.log(allUsers[0].children[0].innerHTML);

    var htmlStr = '';
    // 遍历allUsers 字符串拼接
    for (var i = 0; i < allUsers.length; i++) {
    var str = "<tr>" +
    " <td>"+ allUsers[i].children[0].innerHTML +"</td>" +
    " <td>"+ allUsers[i].children[1].innerHTML +"</td>" +
    " <td>"+ allUsers[i].children[2].innerHTML +"</td>" +
    " <td>"+ allUsers[i].children[3].innerHTML +"</td>" +
    "</tr>";
    htmlStr += str;
    }

    tbody.innerHTML = htmlStr;
    }
    }
    };

    // xml格式注意点:
    // 后台必须设置类型 text/xml
    // 前端请求完, 接收需要 responseXML 来接收, 接收得到的是 dom, 需要通过 dom 的方式取出值!!!

    </script>

    </body>
    </html>
     
     
    xml的php文件如下:
    <?php
    // xml解析时, 一定要设置 content-type 类型 text/xml
    // 设置字符集
    header('content-type: text/xml; charset=utf-8;');

    // 读取xml格式的数据, 并且返回给前端
    // 读取内容
    echo file_get_contents('data.xml');

    ?>
     
     
    xml的xml文件如下:
    <users>
    <user>
    <name>张飞</name>
    <gender>男</gender>
    <age>18</age>
    <desc>大黑飞飞</desc>
    </user>
    <user>
    <name>关羽</name>
    <gender>男</gender>
    <age>30</age>
    <desc>大关刀!!</desc>
    </user>
    <user>
    <name>赵云</name>
    <gender>男</gender>
    <age>20</age>
    <desc>大鹏展翅!!</desc>
    </user>
    <user>
    <name>刘备</name>
    <gender>男</gender>
    <age>60</age>
    <desc>刘皇叔</desc>
    </user>
    </users>
  • 相关阅读:
    java学习笔记3
    java学习笔记 2
    linux用户登录指定目录
    [Jenkins 新插件] 兼容阿里开发手册 (P3C) 的火线插件安装使用教程
    Color a Tree HDU
    网络流初步
    K度限制MST poj 1639
    曼哈顿距离MST
    ACM Amman Collegiate Programming Contest(7.22随机组队娱乐赛)
    HDU Distinct Values
  • 原文地址:https://www.cnblogs.com/yeanling/p/10920206.html
Copyright © 2011-2022 走看看