XML学习(1)
什么是XML?
XML是可拓展标记语言,类似HTML,它的设计宗旨是为了传输数据,而不是像HTML那样显示数据。XML标签没有被预定义,需要用户自定义标签。
xml文档必须包含根元素,它是其他所有元素的父元素,比如这样的结构:
<root>
<child>
<subchild>.....</subchild>
</child>
</root>
root就是根元素
实体
在xml中不要使用字符"<"、">"….应该用实体引用来替代
| < | < |
| $gt; | > |
| & | & |
| ' | ' |
| " | " |
在 XML 中,只有字符 "<" 和 "&" 确实是非法的。大于号是合法的,但是用实体引用来代替它是一个好习惯。
注释:和html一样,都是<!-- … -->
命名的禁忌:
避免使用" – "字符,比如"a-b";避免使用 " : ",比如" a.b ";避免使用" : "
XMLHttpRequest对象用于在后台与服务器交换数据
有了XMLHttpRequest,用户能:
- 在不重新加载页面的情况下更新网页
- 在页面已加载后从服务器请求数据
- 在页面已加载后从服务器接收数据
- 在后台向服务器发送数据
创建方法:
xmlhttp=new XMLHttpRequest();
较为简单的代码示例:
function createXmlHttpRequest(){
if(window.ActiveXObject){ //如果是IE
return new ActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){ //非IE
return new XMLHttpRequest();
}
}
较为复杂的代码示例:
function createXmlHttpRequest(){
if(typeof XMLHttpRequest!=”underfined”) {
return new XMLHttpRequest();
} //for IE7+ Firefox opera chrome safari
else if(typeof ActiveXObject!=”underfined”) { //for IE6-
if(typeof arguments.callee.activeXString != “string”) {
var version = ["MSXML2.XMLHttp.6.0","MSXML2.XMLHttp.3.0","MSXMLHttp"], i ,len;
for ( i=0,len=version.length;i<len;i++) {
try {
new ActiveXobject(versions[i]);
arguments.callee.activeXString=version[i];
break;
} catch(ex) {
alert("please update your IE");
}
}
}
}
return arguments.callee.activeXString;
} else {
throw new Error("XHR对象不可用");
}
}
创建完接口方法之后创建对象:
var xmlhttp=createXmlHttpRequest();
状态判定:
function callback(){
switch(xmlhttp.readyState) {
case 0:
alert("请求未初始化"); break;
case 1:
alert("请求启动但是尚未发送"); break;
case 2:
alert("请求发送,尚未得到响应"); break;
case 3:
alert("请求开始响应,收到部分数据"); break;
case 4:
alert("请求响应完成,收到全部数据"); //交互完成
if((xmlhttp.status>=200 && xmlhttp.status <300) || xml.status==304)
{
var data=xmlhttp.responseText;
} else {
alert(“request was successfully”+xmlhttp.status+xmlhttp.statusText);
}
break;
}
};
GET请求:
xmlhttp=createXmlHttpRequest();
var url="getsomething.jsp?id" +id;
xmlhttp.open("GET",url,true); //选项为“true”,异步处理
xmlhttp.onreadystatechange=callback; //回调函数
xmlHttp.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded;"); //针对不支持FormData的浏览器的处理
xmlHttp.send();
POST请求:
var url = "posturl";
xmlHttp.open("POST", url, true); //选项为“true”,异步处理
xmlHttp.onreadystatechange = callback; //回调函数
xmlHttp.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded;"); //针对不支持FormData的浏览器的处理
xmlHttp.send(xmlfile);
或者:
var data={ID: "123",name:"jack"};
xmlHttp.open("POST", "filename", true); //选项为“true”,异步处理
xmlHttp.onreadystatechange = callback; //回调函数
if(typeof FormData == "underfined") {
xmlHttp.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded;"); //针对不支持FormData的浏览器的处理
}
xmlHttp.send(post(data));
open函数中的True 表示脚本会在 send() 方法之后继续执行,而不等待来自服务器的响应。如果设置为 "false",可以省去额外的 onreadystatechange 代码。如果在请求失败时是否执行其余的代码无关紧要,那么可以使用这个参数。
在没有得到服务器响应的情况下,防止代码停止的最安全的方法就是设置onreadystatechange事件
参考:https://www.cnblogs.com/yuanke/p/4998516.html
XML学习(1)的更多相关文章
- XML 学习介绍 收藏
XML学习总结(一)——XML介绍 一.XML概念 Extensible Markup Language,翻译过来为可扩展标记语言.Xml技术是w3c组织发布的,目前推荐遵循的是W3C组织于2000发 ...
- XML学习笔记
XML学习笔记 第一部分:XML简介 我们经常可以听到XML.HTML.XHTML这些语言,后两者比较清楚,一直不是很明白XML是什么,这里做一个总结. XML(eXtensible Markup L ...
- SQL SERVER XML 学习总结
SQL SERVER XML 学习总结 最新的项目任务要做一个数据同步的功能,这些天都在做技术准备,主要是用到了微软的Service Broker技术,在熟悉使用该技术的同时,又用到了Sql s ...
- XML学习笔记(2)--dom4j操作XML
1. 介绍(四种方式的比较这部分转载自:http://www.blogjava.net/xcp/archive/2010/02/12/312617.html) 1)DOM(JAXP Crimson解析 ...
- XML学习笔记(1)--XML概述
XML基本概念 XML—extensible Markup Language(可扩展标记语言) XML最基本的三个概念 1)XML语言---描述事物本身(可扩展) 2)XSL语言---展现事物表现形式 ...
- XML学习总结(二)——XML入门
XML学习总结(二)——XML入门 一.XML语法学习 学习XML语法的目的就是编写XML 一个XML文件分为如下几部分内容: 文档声明 元素 属性 注释 CDATA区 .特殊字符 处理指令(proc ...
- XML学习教程
XML学习进阶1-- 什么是XML. 为什么使用 XML?... 什么是 XML?... 数据的结构表示... XML 文档... 数据是从表示和处理中分离出来的... 使XML数据自描述... XM ...
- Robot framework--内置库xml学习(一)
Using lxml By default this library uses Python's standard ElementTree module for parsing XML, but it ...
- Java第三阶段学习(十、XML学习)
一.XML学习 1.模拟Servlet执行 在学习完前端及java与数据库后,将进行WEB编程阶段的学习.在WEB编程中,可以通过浏览器访问WEB服务器上的数据.这时WEB服务器就相当于另一台计算机. ...
- [python xml 学习篇][0]
tree = ET.parse("Result.xml")root = tree.getroot()print type(root)print root.tag # 得到root ...
随机推荐
- 2013长沙网赛E题Travel by Bike
题目链接:http://acm.zju.edu.cn/changsha/showProblem.do?problemId=26 题意:一个人从一个地方到另一个地方,长度为L,每小时速度为speed,周 ...
- filebeat向kafka中传输数据报WARN Failed to connect to broker DOMSDev07:9092: dial tcp: lookup DOMSDev07: getaddrinfow: No such host is known.解决方法
打开filebeat客户端所在机器C:\Windows\System32\drivers\etc目录,找到hosts文件 以记事本形式打开,在底部追加 “IP 主机名” 即可
- 第216天:Angular---自定义指令(二)
自定义指令 1.第一个参数是指令的名字,第二个参数任然应该使用一个数组,数组的最后一个元素是一个函数.定义指令的名字,应该使用驼峰命名法 <!DOCTYPE html> <html ...
- 【Python】python 2 map() reduce()
利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字.输入:['adam', 'LISA', 'barT'],输出:['Adam', 'Lisa', 'Bart']. ...
- spring通过工厂模式解决页面耦合问题
spring通过工厂模式解决页面耦合问题
- xml 类详解
- P4329 [COCI2006-2007#1] Bond
题意翻译 有n 个人去执行n 个任务,每个人执行每个任务有不同的成功率,每个人只能执行一个任务,求所有任务都执行的总的成功率. 输入第一行,一个整数n (1≤n≤20 ),表示人数兼任务数.接下来n ...
- (转)enable_from_this方法的使用与陷阱
转自http://blog.chinaunix.net/uid-442138-id-2122464.html enable_from_this 的使用与实现原理说明: shared_from_ ...
- NOI2010~NOI2018选做
[NOI2010] [NOI2010]海拔 高度只需要0/1,所以一个合法方案就是一个割,平面图求最小割. [NOI2010]航空管制 反序拓扑排序,每次取出第一类限制最大的放置,这样做答案不会更劣. ...
- BZOJ3155:Preprefix sum——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=3155 最朴素的想法是两棵树状数组,一个记录前缀和,一个记录前缀前缀和,但是第二个我们非常不好修改 ...