xml基础知识总结

原创 2015年11月17日 15:48:09

从8月份开始陆陆续续的使用c#操作xml,现在做一个小结,一是梳理知识,二是做个备忘。

一个xml文档实例:


<?xml version="1.0" encoding="ISO-8859-1"?>

<note>

<to>George</to>

<from>John</from>

<heading>Reminder</heading>

<body>Don't forget the meeting!</body>

</note>


第一行是XML声明。它定义XML的版本(1.0)和所使用的编码(ISO-8859-1)

下一行描述文档的根元素(root):<note>

接下来4行描述根的4个子元素(to,from,heading以及body)

最后一行定义根元素的结尾:</note>

XML文档形成一种树结构

XML文档必须包含根元素。该元素是所有其他元素的父元素。

XML文档中的元素形成了一颗文档树。这棵树从根部开始,并扩展到树的最底端。

所有的元素均可拥有子元素:

<root>

<child>

<subchild>......</subchild>

</child>

</root>

父、子以及同胞等术语用于描述元素之间的关系。父元素拥有子元素。相同层级上的子元素成为同胞。所有元素均可拥有文本内容和属性。


下面用一个例子来表示:

<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">Everyday Italian</title>

<author>Giada De Laurentiis</author>

<year>2005</year>

<price>30.00</price>

</book>

<book category="WEB">

<title lang="en">Everyday Italian</title>

<author>Giada De Laurentiis</author>

<year>2005</year>

<price>30.00</price>

</book>

</bookstore>


例子中的根元素是<bookstore>。文档中的所有<book>元素都被包含在<bookstore>中。<book>元素中含有4个子元素:<title>、<author>、<year>、<price>。

XML元素

XML元素指的是从(且包括)开始标签到(且包括)结束标签的部分。

元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性。

上面例子中,<bookstore>和<book>都拥有元素内容,因为它们包含了其他元素。<author>只包含文本。

在上例中,只有<book>元素拥有属性(catagory="CHILDREN"......)

XML属性

属性提供有关元素的额外信息,通畅提供不属于数据组成部分的信息。在下面的例子中,文件类型与数据五官,但是对需要处理这个元素的软件来说很重要。

<file type="gif">computer.gif</file>

XML元素vs属性

请看这两个例子:

<person sex="female">

<firstname>Anna</firstname>

<lastname>Smith</lastname>

</person>


<person>

<sex>female</sex>

<firstname>Anna</firstname>

<lastname>Smith</lastname>

</person>

效果是一样的。尽量避免使用属性。如果信息感觉起来像数据,可以用子元素。

<note>

<date>

<day>08</day>

<month>08</month>

<year>2008</year>

</date>

<to>George</to>

<from>John</from>

</note>


针对元数据的XML属性

有时候会向元素分配ID引用。这些ID索引可用于标识XML元素,它起作用的方式与HTML中的ID是一致的,下面的例子演示了这种情况:

<messages>

<note id = "501">

......

</note>

<note id = "502">

......

</note>

</messages>

上面的ID仅仅是一个标识符,用于标识不同的便签。它并不是便签书库的组成部分。

元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素。


注意:

1. 所有的XML元素都必须有关闭标签(打开标签和关闭标签通常被称为开始标签和结束标签)。

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

3. XML必须正确地嵌套

<b><i>This text is bold and italic</i></b>          // 正确

<b><i>This text is bold and italic</b></i>    // 错误

4. XML文档必须有根元素

5. XML的属性值须加引号

如果属性值本身包含双引号,那么有必要使用单引号包围它,就像这个例子:

<gangster name='George "Shotgun" Ziegler'>

在XML中,XML的属性值须加引号。下面两个文档,第一个是错误的,第二个是正确的。

<note date=08/08/2008>

<to>George</to>

<from>John</from>

</note>


<note date="08/08/2008">

<to>George</to>

<from>John</from>

</note>

在第一个文档中的错误是,note元素中的date属性没有加双引号。


实体引用

在xml中,一些字符拥有特殊的意义。

如果把字符“<”放在XML元素中,会发生错误,这是因为解析器会把它当做新元素的开始。

这样会产生XML错误:

<message>if salary < 1000 then</message>

为了避免这个错误,请用实体引用来代替"<"字符:

<message>if salary &lt; 1000 then</message>

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

&lt; < 小于
&gt; > 大于
&amp; & 和号
&apos; ' 单引号
&quot; " 引号

XML中的注释

<!-- This is a comment -->

在XML中,空格会被保留

XML已LF存储换行



















QT的基础知识总结

QWidet类继承自QObject类和QPaintDecice类。 — QOBject是所有支持QT对象模型的的基类 — QPaintDevice是QT中所有可绘制组件的基类 Qwidget是所有...
  • kala111
  • kala111
  • 2016年09月05日 18:57
  • 337

Android基础知识点总结

Android基础知识点总结在学习了很长一段时间的Android基础内容,如果不做及时的复习,那么后面的项目学习起来可能就没那么顺利了,并且复习也是一件很愉快的事。古人有云:“学而时习之不亦说乎”,应...
  • u010495996
  • u010495996
  • 2016年05月07日 19:25
  • 5652

linux基础知识总结

Linux是多用户,多任务的操作系统,这意味着多人可以同时使用一台主机。因为每个用户的个人喜好与隐私问题,文件的所有者就显得尤为重要。将用户分为不同的组别当然是为了方便管理。因此用户与文件之间的关系就...
  • wangdan199112
  • wangdan199112
  • 2015年02月28日 20:07
  • 1535

Html5+CSS3基础知识汇总-CSS3篇

今天总结的是CSS3的学习内容,CSS3的简介、CSS3中新增的样式以及新增样式具体属性的实现。...
  • qq_27348951
  • qq_27348951
  • 2016年11月28日 15:26
  • 351

Java基础知识学习笔记总结

Java学习笔记总结 java基础复习 1、 抽象类可以有构造器,可以有一个非抽象的父类 2、 垃圾回收机制回收的是堆里面的内存,栈里面的数据自动入栈自动出栈 3、 引用类型的数据在堆当中,内存中操作...
  • shine_a
  • shine_a
  • 2017年04月21日 15:26
  • 1711

js基础知识总结篇

javascript在学习过程中的重点易忘的部分的总结~ 基本类型                     注意: JavaScript 不区分整数值和浮点数值,所有数字在 JavaScript 中均...
  • u012896140
  • u012896140
  • 2015年10月16日 20:55
  • 877

C语言基础知识梳理总结

C语言是当代人学习及生活中的必备基础知识,应用十分广泛,下面为大家带来C语言基础知识梳理总结,C语言零基础入门绝对不是天方夜谭!...
  • g984160547
  • g984160547
  • 2017年03月06日 09:54
  • 4142

Android基础知识总结

一、基础知识: 1.Android SDK:Android SDK包含了一个调试器、库、一个模拟器、文档、实例代码和教程。 2.ADT: 用于Eclipse的Android开发工具(Android D...
  • lantian0802
  • lantian0802
  • 2014年03月22日 17:27
  • 2161

PHP基础知识点总结

1.php数组 var_dump()函数返回数组的数据类型和值 2.php对象 在 PHP 中,对象必须声明。 首先,你必须使用class关键字声明类对象。类是可以包...
  • u011053407
  • u011053407
  • 2015年11月17日 17:49
  • 725

计算机基础知识的学习总结

关于域名 对一些静态网页,按F12可以对其进行编辑(某些浏览器行不通,因为不带编辑工具) 开发静态网站,需学习HTML,css以及JavaScript 开发动态网站需要学习Java,python等 ...
  • shawnL1
  • shawnL1
  • 2017年10月17日 12:43
  • 246
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:xml基础知识总结
举报原因:
原因补充:

(最多只允许输入30个字)