XMl学习笔记01

来源:互联网 发布:tidb java 编辑:程序博客网 时间:2024/06/05 08:05

01-什么是XML
XML 指可扩展标记语言(EXtensible Markup Language)
ML 的设计宗旨是传输数据,而非显示数据。
XML 被设计为具有自我描述性。
XML 是 W3C 的推荐标准。
XML 仅仅是纯文本。
HTML 旨在显示信息,而 XML 旨在传输信息,XML 是对 HTML 的补充。(区别)
对 XML 最好的描述是:XML 是独立于软件和硬件的信息传输工具。

02-XML语法规则
所有 XML 元素都须有关闭标签

 <p>这 是 错 误 的~ <p>这 是 正 确 的~</p> 

XML 标签对大小写敏感

<message>这是正确的。</message> <Message>这是错误的。</message>

XML 必须正确地嵌套

<b><i>这 是 正 确 的~</i></b>

XML 文档必须有根元素

<root>  <child>    <subchild>这 是 正 确 的~</subchild>  </child></root>

XML 的属性值须加引号

<note date="08/08/2008">    <to>George</to>    <from>John</from></note>

03-实体引用
在 XML 中,有 5 个预定义的实体引用:

&it; < 小于&gt; > 大于&amp; & 和号&apos; 单引号&quot; 双引号

04-验证 XML 文档
通过 DTD 验证的 XML 是“合法”的 XML。
W3C 支持一种基于 XML 的 DTD 代替者,它名为 XML Schema。

05-XML XSLT
注释:使用 CSS 格式化 XML 不是常用的方法,更不能代表 XML 文档样式化的未来。W3C 推荐使用 XSLT。
XSLT 是首选的 XML 样式表语言。
XSLT (eXtensible Stylesheet Language Transformations) 远比 CSS 更加完善。

 <?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet type="text/xsl" href="simple.xsl"?> <breakfast_menu>  <food>    <name>Belgian Waffles</name>    <price>$5.95</price>    <description>       two of our famous Belgian Waffles    </description>    <calories>650</calories>  </food> </breakfast_menu>

在使用 XSLT 来转换 XML 时,不同的浏览器可能会产生不同结果。为了减少这种问题,可以在服务器上进行 XSLT 转换。

06-XMLHttpRequest对象
XMLHttpRequest 对象用于在后台与服务器交换数据。
用途:
在不重新加载页面的情况下更新网页
在页面已加载后从服务器请求数据
在页面已加载后从服务器接收数据
在后台向服务器发送数据
所有现代的浏览器都支持 XMLHttpRequest 对象。
创建 XMLHttpRequest 对象的语法:

var xmlhttp=new XMLHttpRequest();

老版本的 Internet Explorer (IE5 和 IE6)使用 ActiveX 对象:

var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

通过 XML HTTP 把一个 textfile 载入一个 div 元素中
通过 XML HTTP 进行 HEAD 请求
通过 XML HTTP 进行指定的 HEAD 请求
通过 XML HTTP 列出 XML 文件中的数据

07-XML解析器
所有现代浏览器都有读取和操作 XML 的内建 XML 解析器。
解析器把 XML 载入内存,然后把它转换为可通过 JavaScript 访问的 XML DOM 对象。
注释:当我们谈及 XML 解析,我们常常会使用有关 XML 元素的术语:节点。
解析 XML 文档
下面的代码片段把 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);xmlhttp.send();xmlDoc=xmlhttp.responseXML; 

其他方法 1:通过微软的 XML 解析器来加载 XML
微软的 XML 解析器内建于 Internet Explorer 5 以及更高的版本中。
下面的 JavaScript 片段把一个 XML 文档载入解析器中:

var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");xmlDoc.async="false";xmlDoc.load("note.xml");

1.上面代码的第一个行创建一个空的微软 XML 文档对象。
2.第二行关闭异步加载,这样确保在文档完全加载之前解析器不会继续脚本的执行。
3.第三行告知解析器加载名为 “note.xml” 的 XML 文档。

其他方法 2:在 Firefox 及其他浏览器中的 XML 解析器

var xmlDoc=document.implementation.createDocument("","",null);xmlDoc.async="false";xmlDoc.load("note.xml");

1.上面代码的第一个行创建一个空的 XML 文档对象。
2.第二行关闭异步加载,这样确保在文档完全加载之前解析器不会继续脚本的执行。
3.第三行告知解析器加载名为 “note.xml” 的 XML 文档。

08-解析 XML 字符串
下面的 JavaScript 代码片段把 XML 字符串解析到 XML DOM 对象中(把字符串 txt 载入解析器):

txt="<bookstore><book>";txt=txt+"<title>Everyday Italian</title>";txt=txt+"<author>Giada De Laurentiis</author>";txt=txt+"<year>2005</year>";txt=txt+"</book></bookstore>";if (window.DOMParser)  {  parser=new DOMParser();  xmlDoc=parser.parseFromString(txt,"text/xml");  }else // Internet Explorer  {  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");  xmlDoc.async="false";  xmlDoc.loadXML(txt);  }

注释:Internet Explorer 使用 loadXML() 方法来解析 XML 字符串,而其他浏览器使用 DOMParser 对象。
注释:loadXML() 方法用于加载字符串(文本),load() 用于加载文件。
跨域访问
出于安全方面的原因,现代的浏览器不允许跨域的访问。

0 0
原创粉丝点击