XML入门知识笔记
XML stands for eXtensible Markup Language.
XML is designed to transport and store data.
XML is important to know, and very easy to learn.
XML就是一种标记语言,用"<something>"开头"</somethine>"结尾,把内容框在里面
具体格式就像这样:
1 <?xml version="1.0"?> 2 <note> 3 <to>Tove</to> 4 <from>Jani</from> 5 <heading>Reminder</heading> 6 <body>Don't forget me this weekend!</body> 7 </note>
这是一个类似于“提醒信息”(note)的数据,是Jani给Tove的提醒信息(remainder),内容是"Don't forget me this weekend!"(body)
这整一个就是一个XML文档,里面是“提醒信息”的数据。
XML可以说是一种格式,遵守这种格式的文档就是XML文件了。
XML文件中包含:
这是什么数据:<heading></heading>
数据的内容:Reminder
(在“<heading>Reminder</heading>”这个element中)
为什么会产生XML呢?应该是为了个方便的交换数据。举个例子:
两个国家之间的信件地址格式不一样。一个国家是“省份-地区-城市-街道-门号-国家”,而另一个国家是“城市-街道-门号-地区-省份-国家”,两个国家通信起来就会有困难:到底哪个部分对应的是城市,哪个部分对应的是街道。这里只有两个国家还好说,但是在软件应用程序的世界里,有成千上万的“国家”(程序),他们想彼此交换数据就的话就非常困难。所以为了统一这种“信件地址”数据的格式,XML就产生了。
既然XML是用来方便交换数据的,那不难理解,他的内容包含的就是要交换的数据。
又为了说明这个是什么数据,所以每个数据都用标签框起来,来说明这是说明数据。
于是就有了:
<to>Tove</to> <from>Jani</from>
(意思是“从Tove送到Jani”)
记住,XML是一种格式,和PHP等脚本语言不一样,没有专门对应的解释器之类的程序来执行代码。
XML Tree 结构:
<?xml version="1.0"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
这个例子中就是:
note
+--to
+--from
+--heading
+--body
这种结构,note是root,to等等是child。
XML 标签(Tag) 的属性(attribute):
<note date="12/11/2007"> <to>Tove</to> <from>Jani</from> </note>
这段代码中note的date就是note标签的属性,属性的值一定要用""或者''号括起来。
一般属性是记录Meta数据的,就是Data about Data(关于数据的数据),例如:
<photo type="gif">"D:\\myphoto.gif"</photo>
这之中的type就是说明这个标签中的图片数据的格式是Gif。就是关于数据的数据。
所以一般情况下避免包数据写进属性,因为这样会增加维护困难度。
特殊的符号:
这中间的“<”号会应发一个XML的错误(中间那个‘<’号):
<message>if salary < 1000 then</message>
这个时候应该避开这种用于XML格式的符号,用这个代替:
<message>if salary < 1000 then</message>
这里的所有符号都应该换成以下文字:
< |
< |
less than |
> |
> |
greater than |
& |
& |
ampersand |
' |
' |
apostrophe |
" |
" |
quotation mark |
XML的注释:
<!-- This is a comment -->
是和HTML一样的。
XML的DTD(Document type definition):
(这个在这稍微了解一下,具体的要参考DTD的教程)
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE note SYSTEM "Note.dtd"> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
那个<!DOCTYPE ... >就是DTD,用来定义文档中的合法的元素和结构(就是一个元素里包含有那几个标签)。也就是说如果你在XML里使用了没有出现在DTD中的标签就会报错而停止运行。这里是用读取了一个系统中的“Note.dtd”文件。
而这句还可以这么写:
<!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]>
具体的内容要看DTD的教程了。
最后,注意:
1,XML是区分大小写的!(Case-Sensitive)
2,一定有一个element包含所有其他element,也就是说一定有一个root element。
3,一定要关闭标签,就是说每个标签都应该是一对的,有开头,有结尾。
4,标签的属性的值一定要用""或者''号括起来。