xml基础知识总结

来源:互联网 发布:淘宝怎么进体检中心 编辑:程序博客网 时间:2024/06/06 06:54

从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存储换行



















1 0
原创粉丝点击