本文共 2427 字,大约阅读时间需要 8 分钟。
XML文档形成了一种树结构,它从“根部”开始,然后扩展到“枝叶”。
XML文档必须包含根元素,该元素是所有其他元素分父元素,文档中的所有元素形成了一棵文档树,这棵树从根开始,并扩展到树的最低端,并且所有的元素都可以有子元素:....
父元素拥有子元素,相同层级上的子元素成为同胞(兄弟或姐妹)。
XML中所有元素都可以有文本内容和属性,类似于HTML。下面是一个关于xml的joy写给ruby的便签:
ruby joy Inform have a meeting
第一行是xml的声明,定义了xml的版本号和所使用的编码。下一行是一个根元素,根元素下面又嵌套了4个子元素(to,from,heading以及body),最后一行是根元素的结束,该xml文档包含了joy给ruby的通知条。
XML中注释格式为:
XML的元素是指从开始标签直到结束标签的部分(均包括开始结束)。
一个元素可以包含:XML的语法规则很简单、易学,但是却很有逻辑。
test test
this is a test1 this is a test2
上面实例中和是不一样的。
注意:打开标签和关闭标签也叫开始标签和结束标签,无论您喜欢哪种术语,它们的含义都是相同的。this is a test2
this is a test2 joy
上例中的就是根元素。
Learing Python xxx red
book元素中的属性category的值Python必须用引号引起来,使用单引号和双引号都可以,但如果属性值本身包含双引号,就使用单引号;如果包含单引号,就使用双引号。如:
使用属性易引起的一些问题:
属性难以阅读和维护,所以尽量使用元素来描述数据,而仅仅使用属性来提供一些与数据无关的信息。
XML中,一些字符拥有特殊意思,“<”表示新元素的开始,如果把该符号放到XML元素中,XML解析器就会把它当成新元素的开始,这样机会产生错误。如:
Learing <Python
为了避免这个错误,XML提供了实体引用来代替那些具有特殊意思的字符。XML中,拥有5个预定义的实体引用:
在XML中,只有字符“<”和“&”是非法的,其它都是合法的,但使用实体引用来代替是一个好习惯。如:
12 > 10
注意:
在HTML中会把多个连续的空格字符合并为一个,而XML中,文档的空格不会被删减。XML元素必须遵循以下命名规则:
CDATA(Unparsed Character Data)指的是不应由XML解析器进行解析的文本数据。
因为XML解析器会将“<”(新元素的开始)和“&”(字符实体的开始)解析成具有特殊含义的字符,所以如果在文本中需要使用这些字符时,就必须使用实体引用去代替。但是有些文本,如JavaScript代码中会包含大量的“<”和“&”符号,这时我们可以将我们的脚本定义为CDATA来避免这个这个问题,因为CDATA部分中所有的内容都会被XML解析器忽略。CDATA固定语法格式为:
如:
上面是一段JavaScript代码,解析器会忽略CDATA部分中的所有内容。
注意:
CDATA部分不能包含字符串“]]>”(并且这字符串之间不能有空格或折行等字符),如果包含了,会以为是CDATA的结束。也不允许嵌套CDATA部分。