当前位置: 首页 > news >正文

XML HTTP传输 小结

what’s XML

XML 指可扩展标记语言(eXtensible Markup Language)。

XML 被设计用来传输和存储数据,不用于表现和展示数据,HTML 则用来表现数据。

XML 是独立于软件和硬件的信息传输工具。

应该掌握的基础知识

  • HTML
  • JavaScript

XML 不会做任何事情

XML 被设计用来结构化、存储以及传输信息。

  • 文件格式
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

没有预定义标签

  • HTML 中使用的标签都是预定义的。HTML 文档只能使用在 HTML 标准中定义过的标签(如 <p>、<h1> 等等)。
  • 上面实例中的标签没有在任何 XML 标准中定义过(比如 和 ),
  • XML 允许创作者定义自己的标签和自己的文档结构。

简化数据共享

  • XML 数据以纯文本格式进行存储,因此提供了一种独立于软件和硬件的数据存储方法。

real example

<?xml version="1.0" encoding="UTF-8"?>	
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
  • line 1定义XML 的版本(1.0)和所使用的编码(UTF-8 : 万国码, 可显示各种语言)

树结构

<bookstore><book category="COOKING"><title lang="en">Everyday Italian</title><author>Giada De Laurentiis</author><year>2005</year><price>30.00</price></book><book category="CHILDREN"><title lang="en">Harry Potter</title><author>J K. Rowling</author><year>2005</year><price>29.99</price></book><book category="WEB"><title lang="en">Learning XML</title><author>Erik T. Ray</author><year>2003</year><price>39.95</price></book>
</bookstore>

使用CSS格式化显示XML

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/css" href="cd_catalog.css"?>
<CATALOG>
<CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>
<CD>
<TITLE>Hide your heart</TITLE>
<ARTIST>Bonnie Tyler</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>CBS Records</COMPANY>
<PRICE>9.90</PRICE>
<YEAR>1988</YEAR>
</CD>
.
.
.
</CATALOG>
  • 第二行把 XML 文件链接到 CSS 文件
    在这里插入图片描述

XSLT

JS API of XML

  • create an XMLHttpRequest Object
xmlhttp=new XMLHttpRequest();
  • XML文档->XML DOM
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","books.xml",false);	//同步不需要编写onreadystate处理服务器响应
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
  • 异步响应
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
<script>
function loadXMLDoc()
{if (window.XMLHttpRequest){// IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码xmlhttp=new XMLHttpRequest();}else{// IE6, IE5 浏览器执行代码xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}xmlhttp.onreadystatechange=function(){if (xmlhttp.readyState==4 && xmlhttp.status==200){document.getElementById("myDiv").innerHTML=xmlhttp.responseText;}}xmlhttp.open("GET","xmlhttp_info.txt",true);xmlhttp.send();
}
</script>
</head>
<body><h2>使用 XMLHttpRequest 对象</h2>
<div id="myDiv"></div>
<button type="button" onclick="loadXMLDoc()">修改内容</button></body>
</html>

XMLHttpRequest GET

  • 所有现代的浏览器(IE7+、Firefox、Chrome、Safari 和 Opera)都有一个内建的 XMLHttpRequest 对象。
  • 旧版本的 Internet Explorer(IE5 和 IE6)使用 ActiveX 对象:xmlhttp=new ActiveXObject(“Microsoft.XMLHTTP”);
  1. 发送一个请求到服务器
xmlhttp.open("GET","xmlhttp_info.txt",true);
xmlhttp.send();

format:open(method,url,async)

  • method:请求的类型:GET 或 POST
  • url:文件在服务器上的位置
  • async:true(异步)或 false(同步)
  1. 处理服务器的相应数据
  • 返回的是字符串
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
  • 返回的是XML文档对象
xmlDoc=xmlhttp.responseXML;
var txt="";
x=xmlDoc.getElementsByTagName("ARTIST");
for (i=0;i<x.length;i++)
{txt=txt + x[i].childNodes[0].nodeValue + "";
}
document.getElementById("myDiv").innerHTML=txt;
  1. onreadystatechange
xmlhttp.onreadystatechange=function()
{if (xmlhttp.readyState==4 && xmlhttp.status==200){document.getElementById("myDiv").innerHTML=xmlhttp.responseText;}
}
  • onreadystatechange:存储函数(或函数的名称)在每次 readyState 属性变化时被自动调用
  • readyState存放了 XMLHttpRequest 的状态。从 0 到 4 变化:
    0:请求未初始化
    1:服务器建立连接
    2:收到的请求
    3:处理请求
    4:请求完成和响应准备就绪
  • status:200:“OK”
    404:找不到页面

XMLHttpRequest POST

Mylab

  1. transform image to xml
  2. http post image,and get response XML tag
  3. transform xml into text and show on the browser

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Jackson 各种注解使用示例
  • 2024年面试AI编译器岗经验总结
  • 【Redis】分布式锁及其他常见问题
  • GPU部署ChatGLM3
  • AI技术创业机会之教育科技
  • 延时队列实现实战:如何利用 RabbitMQ 实现延时队列,以满足特定延迟处理需求
  • 从人机界面设计黄金三法则视角看 ChatGPT 的界面设计的“好”与“坏”
  • 提高网站安全性,漏洞扫描能带来什么帮助
  • 如何在Bash中连接字符串变量
  • Golang中的上下文-context包的简介及使用
  • nodejs应用程序以守护进程daemon的方式启动,容器化部署的时候一直部署出错,导致无法成功启动程序。
  • redis的简单操作
  • 【第十二篇】使用BurpSuite实现CSRF(实战案例)
  • docker compose部署项目—踩坑记录
  • vue2 利用网络代理axios实现开发环境前端跨域
  • 深入了解以太坊
  • php的引用
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • python3.6+scrapy+mysql 爬虫实战
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 2017-08-04 前端日报
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • PHP的Ev教程三(Periodic watcher)
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 什么软件可以剪辑音乐?
  • #数据结构 笔记一
  • $LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams
  • (C++二叉树05) 合并二叉树 二叉搜索树中的搜索 验证二叉搜索树
  • (Charles)如何抓取手机http的报文
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (一)SvelteKit教程:hello world
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转)visual stdio 书签功能介绍
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .Net 6.0--通用帮助类--FileHelper
  • .net core Redis 使用有序集合实现延迟队列
  • .net dataexcel winform控件 更新 日志
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .NET 回调、接口回调、 委托
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .net6Api后台+uniapp导出Excel
  • ?
  • @Pointcut 使用
  • [001-03-007].第07节:Redis中的事务
  • [C#]手把手教你打造Socket的TCP通讯连接(一)
  • [C++] cout、wcout无法正常输出中文字符问题的深入调查(1):各种编译器测试
  • [Codeforces] combinatorics (R1600) Part.2