XML数据格式

  • 首行必须是版本号和格式等信息
<?xml version="1.0" encoding="utf-8" ?>
  • 最外层需要一个根节点进行包裹
  • 标签有开头有结尾,效率低下
  • php中设置header需要将content-type设置成text/xml
header("content-type:text/xml;charset=utf-8");
  • 浏览器读取XML文件是用ajax.responseXML
  • 浏览器接收到的是文档树,可以用访问节点的方式获取值

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
body{
text-align: center;
}
div{
width: 500px;
height: 100px;
margin: 0 auto;
text-align: center;
}
td{
border: 1px solid #000;
}
table{
text-align: center;
width: 500px;
border-collapse: collapse;
}
</style>
</head>
<body>
<div></div>
<button>获取xml文件数据</button>
<script>
var btn = document.getElementsByTagName("button")[0];
btn.onclick = function () {
var ajax = new XMLHttpRequest();
ajax.open('get', '03.php');
ajax.send();
ajax.onreadystatechange = function (ev) {
if (ajax.readyState=4&&ajax.status==200) {
var msg=ajax.responseXML;
console.log(msg);
var str="";
str+="<table>";
var persons=msg.querySelectorAll('person');
for (var i = 0; i < persons.length; i++) {
str+="<tr>";
str+="<td>"+persons[i].children[0].innerHTML+"</td>";
str+="<td>"+persons[i].children[1].innerHTML+"</td>";
str+="<td>"+persons[i].children[2].innerHTML+"</td>";
str+="</tr>";
}
str+="</table>"
var div=document.getElementsByTagName("div")[0];
div.innerHTML=str;
}
}
}
</script>
</body>
</html>
<?php
header("content-type:text/xml;charset=utf-8");
echo file_get_contents('files/01.xml');
?>
<?xml version="1.0" encoding="utf-8" ?>
<personXML>
<person>
<name>zs1</name>
<age>17</age>
<sex>nan</sex>
</person>
<person>
<name>zs2</name>
<age>18</age>
<sex>nan</sex>
</person>
<person>
<name>zs3</name>
<age>19</age>
<sex>nan</sex>
</person>
</personXML>

JSON数据格式

  • 格式上可以是标准的json字符串,也可以组成数组
[
{"name":"zs1","age":,"sex":"nan"},
{"name":"zs2","age":,"sex":"nan"},
{"name":"zs3","age":,"sex":"nan"}
]
  • 基本上所有语言都可以将JSON字符串转化为该语言的对象进行访问
var msg = JSON.parse(ajax.responseText);//将json字符串转化为js对象
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
body {
text-align: center;
} div {
width: 500px;
height: 100px;
margin: 0 auto;
text-align: center;
} td {
border: 1px solid #000;
} table {
text-align: center;
width: 500px;
border-collapse: collapse;
}
</style>
</head>
<body>
<div></div>
<button>点击获取json数据</button>
<script>
var btn = document.getElementsByTagName("button")[0];
btn.onclick = function () {
var ajax = new XMLHttpRequest();
ajax.open('post', '04.php');
ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
ajax.send();
ajax.onreadystatechange = function (ev) {
if (ajax.readyState == 4 && ajax.status == 200) {
console.log(ajax.responseText);
var msg = JSON.parse(ajax.responseText);
var str = "";
str += "<table>";
for (var i = 0; i < msg.length; i++) {
str += "<tr>";
str += "<td>" + msg[i]["name"] + "</td>";
str += "<td>" + msg[i]["age"] + "</td>";
str += "<td>" + msg[i]["sex"] + "</td>";
str + "</tr>";
}
str += "</table>";
var div = document.getElementsByTagName("div")[0];
div.innerHTML = str;
}
}
}
</script>
</body>
</html>
<?php
header("content-type:text/html;charset=utf-8");
echo file_get_contents('files/02.json');
?>
[
{"name":"zs1","age":,"sex":"nan"},
{"name":"zs2","age":,"sex":"nan"},
{"name":"zs3","age":,"sex":"nan"}
]

Ajax——异步基础知识(二)的更多相关文章

  1. Ajax——异步基础知识(一)

    基础概念 1.异步请求可以做到偷偷向服务器发送请求,而页面却不刷新 2.get异步请求传递参数是通过url追加键值对的方式 3.post异步请求比较特殊,需要设置请求的类型 User-Agent:浏览 ...

  2. Ajax——异步基础知识(三)

    封装异步请求 1.将函数作为参数进行使用 2.因为获取数据是在一个注册事件中获取的,所以只有事件触发的时候才会调用此函数 <!DOCTYPE html> <html lang=&qu ...

  3. java 基础知识二 基本类型与运算符

    java  基础知识二 基本类型与运算符 1.标识符 定义:为类.方法.变量起的名称 由大小写字母.数字.下划线(_)和美元符号($)组成,同时不能以数字开头 2.关键字 java语言保留特殊含义或者 ...

  4. 菜鸟脱壳之脱壳的基础知识(二) ——DUMP的原理

    菜鸟脱壳之脱壳的基础知识(二)——DUMP的原理当外壳的执行完毕后,会跳到原来的程序的入口点,即Entry Point,也可以称作OEP!当一般加密强度不是很大的壳,会在壳的末尾有一个大的跨段,跳向O ...

  5. Dapper基础知识二

    在下刚毕业工作,之前实习有用到Dapper?这几天新项目想用上Dapper,在下比较菜鸟,这块只是个人对Dapper的一种总结. 2,如何使用Dapper?     首先Dapper是支持多种数据库的 ...

  6. python基础知识(二)

    python基础知识(二) 字符串格式化 ​ 格式: % 类型 ---- > ' %类型 ' %(数据) %s 字符串 ​ print(' %s is boy'%('tom')) ----> ...

  7. Java基础知识二次学习--第三章 面向对象

    第三章 面向对象   时间:2017年4月24日17:51:37~2017年4月25日13:52:34 章节:03章_01节 03章_02节 视频长度:30:11 + 21:44 内容:面向对象设计思 ...

  8. Java基础知识二次学习-- 第一章 java基础

    基础知识有时候感觉时间长似乎有点生疏,正好这几天有时间有机会,就决定重新做一轮二次学习,挑重避轻 回过头来重新整理基础知识,能收获到之前不少遗漏的,所以这一次就称作查漏补缺吧!废话不多说,开始! 第一 ...

  9. 快速掌握JavaScript面试基础知识(二)

    译者按: 总结了大量JavaScript基本知识点,很有用! 原文: The Definitive JavaScript Handbook for your next developer interv ...

随机推荐

  1. Ubuntu 16.04安装Bless十六进制编辑器

    一款专注于十六进制的编辑器. 安装: sudo apt-get install bless 启动:

  2. C# 运行CMD命令

    /// <summary> /// 运行CMD命令 /// </summary> /// <param name="cmd">命令</pa ...

  3. Spring MVC JSON自己定义类型转换(续)

    前面提到了两种转换类型的方法(Spring MVC JSON自己定义类型转换),这里针对Json转换提供一种更简便的方法. 通过配置全局的日期转换来避免使用麻烦的注解. 首先用到了一个简单的日期工具类 ...

  4. JAVA 如何反编译JAR文件

    1 直接的jar文件可以用winrar解压,然后得到class文件,但是这里得到的class文件也是编译过的二进制文件,用传统的文本编辑器无法打开. 2 用XJad这个软件可以反编译Jar文件,直接找 ...

  5. 【Cocos2dx游戏开发】CCTableView实现滑动列表

    在游戏中,经常需要用到列表展示,例如我现在做的卡牌游戏中就有卡牌列表和好友列表需要用到CCTableView,下面简单介绍一下使用方法. CCTableView位于扩展库文件cocos-ext.h中, ...

  6. ITK Configuring and Building in VisualStudio及hello world程序编译

    1. ITK Configuring and Building in VisualStudio With Visual Studio 2010 on Windows 7 (32-bit): Launc ...

  7. 去哪网实习总结:开发定时任务(JavaWeb)

    本来是以做数据挖掘的目的进去哪网的,结构却成了系统开发.. . 只是还是比較认真的做了三个月,老师非常认同我的工作态度和成果.. . 实习立即就要结束了.总结一下几点之前没有注意过的变成习惯和问题,分 ...

  8. 将分布式-队列的实现交给redis

    import requestsimport reimport timefrom redis import Redisimport threading REDIS_HOST, REDIS_PORT, P ...

  9. 浅析Java开发模式—Model1、Model2和三层

    "解耦"的思想一直是我们倡导的,但在实际项目中怎样去做?这是需要我们去好好思考的.下面以Model1.Model2.三层为切入点,对比下去了解解耦的思想. Model1 使用JSP ...

  10. 布局技巧4:使用ViewStub

    多亏了<include />标签,在Android里,很容易就能做到共享和重用UI组件.在Android开发中,很容易就能创建出复杂的UI结构,结果呢,用了很多的View,且其中的一些很少 ...