XML学习笔记

第一部分:XML简介  

  我们经常可以听到XML、HTML、XHTML这些语言,后两者比较清楚,一直不是很明白XML是什么,这里做一个总结。

  XML(eXtensible Markup Language),即为可扩展标记语言,被用来传输和存储数据,我们使用的JSON传输数据,实际上原来使用的就是XML。

  与HTML区别:XML被用来传输和存储数据。

         HMTL被用来显示数据。

  注意:XML的标签与预定义的HTML标签不同,XML的标签没有被预定义,因此我么需要自行定义标签。

第二部分:XML用途

  它可以把数据从HTML分离,因为我们只需要通过使用几行JavaScript代码就可以读去一个外部的XML文件,并更新我们的网页的数据内容。

  它还可以创建新的互联网语言。比如XHTML 、作为手持设备的标记语言的WAP和WML等。

第三部分:XML树结构

  下面是一个例子:

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

其中第一行是XML声明:定义了XML为1.0版本,使用的是ISO-8859-1编码。这个是必须的。

第二行中的标签是XML树的根元素。 这个也是必须的。当然,根元素这里设置为note,也可以是其他的。

后面几行中的to from heading body是子元素。子元素中可以嵌套子元素。

第四部分:xml语法

  1.所有的XML元素都必须有一个关闭标签,否则是违法的。

  2.XML标签对大小写敏感。

  3.XML标签必须正确嵌套。

  4.XML文档必须要有一个根元素。

  5.如果给XML元素添加属性,那么属性值必须有引号。

  6.在XML中,不能把< &这些特殊意义的符号放在XML元素中,必须使用实体。

  7.XML的注释和Html相似如:<!-- this is a explanation -->

  8.XML中空格会被保留。

第五部分:xml元素

  即开始标签、内容、结束标签。

  注意:xml命名时不能以xml、XML这些开始。

  我们可以命名first_name等,不要使用first-name(一些软件会认为这是要从first中减去name) ,不要使用first.name(会被看作对象).

  

第六部分:xml属性

  注意:尽量不要使用属性,使用元素会更好。

  属性值必须使用双引号括起来。

  属性难以阅读和维护。请尽量使用元素来描述数据。

<note day="" month="" year=""
to="Tove" from="Jani" heading="Reminder"
body="Don't forget me this weekend!">
</note>

  上述这种使用了大量的属性的方式是非常愚蠢的!!!!

  

  

第七部分:查看XML文件

   在所有的主流浏览器中,都可以查看原始的XML文件。

   点击下面的链接,即可在浏览器中查看xml文件:

  http://www.runoob.com/try/xml/note.xml

  点击下面的链接,这是一个有错误的xml文件:

  http://www.runoob.com/try/xml/note_error.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;

其中,xmlhttp.responseXML即为解析之后的XML对象。这样就可以通过Javascript来操作了。

那么怎么来操作呢?看下面这个例子:

<!DOCTYPE html>
<html>
<body>
<h1>W3Cschool Internal Note</h1>
<div>
<b>To:</b> <span id="to"></span><br>
<b>From:</b> <span id="from"></span><br>
<b>Message:</b> <span id="message"></span>
</div> <script>
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","note.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML; document.getElementById("to").innerHTML=
xmlDoc.getElementsByTagName("to")[].childNodes[].nodeValue;
document.getElementById("from").innerHTML=
xmlDoc.getElementsByTagName("from")[].childNodes[].nodeValue;
document.getElementById("message").innerHTML=
xmlDoc.getElementsByTagName("body")[].childNodes[].nodeValue;
</script> </body>
</html>

其中,我们得到的responseXML的dom树是这样的:

  介绍就到这里吧,要看更多,推荐菜鸟教程。

  

  

XML学习笔记的更多相关文章

  1. delphi操作xml学习笔记 之一 入门必读

    Delphi 对XML的支持---TXMLDocument类       Delphi7 支持对XML文档的操作,可以通过TXMLDocument类来实现对XML文档的读写.可以利用TXMLDocum ...

  2. XML学习笔记(四)-- 修饰XML文档的CSS

    标签(空格分隔): 学习笔记 XML为存储结构化数据提供了强大的方法,但是它没有提供关于数据如何显示地信息,(数据的结构与数据表示无关).可以使用CSS来控制XML文档中各元素的呈现方式. CSS语法 ...

  3. XML学习笔记(三) -- Schema

    标签(空格分隔): 学习笔记 Schema的格式 XML Schema文档是由元素.属性.命名空间和XML文档中的其他节点构成的. XML Schema有两种重要的Schema模型:Microsoft ...

  4. XML学习笔记(二)-- DTD格式规范

    标签(空格分隔): 学习笔记 XML的一个主要目的是允许应用程序之间自由交换结构化的数据,因此要求XML文档具有一致的结构.业务逻辑和规则.可以定义一种模式来定义XML文档的结构,并借此验证XML文档 ...

  5. XML学习笔记之XML的简介

    最近,自学了一段时间xml,希望通过学习笔记的整理能够巩固一下知识点,也希望把知识分享给你们(描红字段为重点): XML(extensible Markup language):可扩展的标记语言,解决 ...

  6. Python之xml学习笔记

    XML处理模块 xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,至今很多传统公司如金融行业的很多系统的接口还主要是xml. xml的格式如下,就是通过&l ...

  7. XML学习笔记(2)--dom4j操作XML

    1. 介绍(四种方式的比较这部分转载自:http://www.blogjava.net/xcp/archive/2010/02/12/312617.html) 1)DOM(JAXP Crimson解析 ...

  8. XML学习笔记(1)--XML概述

    XML基本概念 XML—extensible Markup Language(可扩展标记语言) XML最基本的三个概念 1)XML语言---描述事物本身(可扩展) 2)XSL语言---展现事物表现形式 ...

  9. XML学习笔记7——XSD实例

    在前面的XSD笔记中,基本上是以数据类型为主线来写的,而在我的实际开发过程中,是先设计好了XML的结构(元素.属性),并写好了一份示例,然后再反过来写XSD文件(在工具生成的基础上修改),也就是说,是 ...

随机推荐

  1. 新玩具---Amazon Kindle PaperWhite 2

    自从将闲置了一段时间的K3 Keyboard 3G送人后,就一直用Nexus7平板上装Kindle程序来读书,用着也挺好,没有出现很多人说的费眼问题,说来也奇怪上学毕业之后,一直从事编程相关的工作有七 ...

  2. C语言函数sscanf()的用法

    从文件读取数据是一件很麻烦的事,所幸有sscanf()函数. C语言函数sscanf()的用法 sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: int sscanf( st ...

  3. [转]7个高性能JavaScript代码高亮插件

    对于喜欢写技术博客的同学来说,一定对代码高亮组件非常熟悉.一款优秀的JavaScript代码高亮插件,将会帮助你渲染任何一种编程语言,包括一些关键字的着色,以及每行代码的缩进等.今天我们要来分享一些高 ...

  4. 用自己的话描述wcf中的传输安全与消息安全的区别(三)

    消息交换安全模式 PS:很多书上把transfer security和transport security都翻译成“传输安全”,这样易混淆.我这里把transfer说成消息交换安全. 安全的含义分为验 ...

  5. Beta项目冲刺--第三天

    又找回熟悉的感觉.... 队伍:F4 成员:031302301 毕容甲 031302302 蔡逸轩 031302430 肖阳 031302418 黄彦宁 会议内容: 1.站立式会议照片: 2.项目燃尽 ...

  6. 安卓 Context 和 Application的关系

    1. 我开始一直不理解显式Intent中传一个this(当前的activity)是为什么.因为Intent里面的构造方法对应的只有 Context, Class.后面查资料才发现 Intent i = ...

  7. Linux 下以其他用户身份运行程序—— su、sudo、runuser

      本文综合分析了Linux系统下,如何使用runuser命令.su命令和sudo命令以其他用户身份来运行程序,以及这三个命令的运行效率比较. 一.su 命令临时切换用户身份 SU:( Switch ...

  8. jsp内置对象作业2-留言簿

    1.留言簿页面:liuYan.jsp <%@ page language="java" contentType="text/html; charset=UTF-8& ...

  9. mysql之旅【第二篇】

    创建,修改和删除表 1,创建表: create table 表名(属性名   数据类型   [完整性约束条件], 属性名   数据类型   [完整性约束条件], 属性名   数据类型   [完整性约束 ...

  10. JavaScript使用自定义事件实现简单的模块化开发

    WEB前端最常见驱动方式就是事件了, 所有交互等等都是通过事件,前端的常见事件有: UI事件: 焦点事件: 鼠标事件: 滚轮事件: 文本事件: 键盘事件: 变动事件: 现在网页上有一个输入框, 如果我 ...