掌握XML系列(3)---创建格式良好的XML文档 续编

人生避难

人生避难

2016-02-19 19:02

下面图老师小编要向大家介绍下掌握XML系列(3)---创建格式良好的XML文档 续编,看起来复杂实则是简单的,掌握好技巧就OK,喜欢就赶紧收藏起来吧!

  前一篇的小结,上一篇我写了创建良好的XML文档的一个小节:元素,这个小节包含了几个小的部分:文档根,合法和非法的名称,非字符,实体引用.那么我们接着来.

  5.CDATA部分:

  之前说过在在文档中,如果包含&等这样的字符,我们就要转义,用实体引用.但是,如果在较大的文档中,我们不想遍历每个无效的字符,也就是说,我们不想一个个的查看字符,然后将不合法的转义,那么我们就可以将他们包装到CDATA中,进行批量的转义,如,下面的就不合法:

dataIdon'tknowhowtouse""and"&"inxml/data

  因为在上面的PCDATA中直接用了"" 和"&",所以次XML不合法.但是我们可以用下面的:

 data![CDATA[Idon'tknowhowtouse""and"&"inxml]]/data

  以上就合法了,一般使用CDATA转义那些可能包含非法字符的大段的XML文本.除此之外,还可以将这和规则添加到DTD和 XML Schema中,我们以后会说的.

  注意:用"![CDATA[ ]]"还包含你的文本  .

  看看下面的例子吧,测试下看看下面的是否合法:

?xmlversion="1.0"?
capitals
 countryname="Scotland"Edinburgh/country
 countryname="Chile"Santiago/country
 countryname="Italy"Rome/country
 copyright
  Thecontentofthis<xml>fileis©NoCompanyAtAllLimited
 /copyright
 footerThisisjustsectionthatcontainsawholeloadof"characters"that
maybecouldcausesomeproblemswhenworkingwithXMLfiles.Weknowthatand&characterscauseproblems,butwhatabout$and%??Well,bythetimeyoureadthisyouwillknow
 /footer
/capitals

  大家可以将文档保存为.xml的文本,然后用浏览器打开,结果会报错!(大家最好试试)看看怎么改欢迎大家提问!

  6. XML中空白是有意义的.

  在XML文档,最容易让人混淆的就是其中的空白字符.在使用HTML的时候,空白是没有什么意义的,如果有很多的空白(空格字符 )在一起,浏览器就将他们解析为一个空白,但是我们可以用 来使得很多的空格存在.

  在XML中空格有意义,而且有很多的方式来处理空白将空白最为元素的数据处理和处理两个元素标记之间的空白是有差别的.见下:

  如果空白在元素的文本(PCDATA),

     datamydataIt is        whitespace/mydata/data

  代码中的单词is 和whitespace之间有三个空白,在浏览器中显示如下:

  It iswhitespace(空白合并了)

  但是,如果标记之间出现空白,就会采用不同的方式处理的.如:

     data  mydataIt is    whitespace/mydata  /data

  在data和mydata元素之间有3个空格,但是用浏览器看的时候,data和mydata之间的空白还是用的.

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)

  所以,我们可以在元素的外部使用空白来缩进和对其代码,便于设计XML和阅读XML文档.

  在XML解析器中,PDATA中的空白是有意义的,不过在其他的程序,如HTML中,不管空白在什么东方,多个的空白直接叠加在一起.我们我们要用一种方法来指定

  PDATA的空白有意义.那么就用xml:space属性就可以了.该属性有default和preserve两个值.如果设置为 default那么解析器就在PDATA中合并空白,而preserve就

  保留空白.

  如下:

dataxml:space="preserve"
 HelloMyFriends
 HelloEveryOne
 HappyNewYear
/data

  输出的文本就是保留空格的格式:

  Hello My Friends

  Hello EveryOne

  Happy NewYear

  现在用浏览器看还有点问题,以后解决这个问题,大家只要知道这个规则就行.

  7. 元素嵌套

  使用元素的时候需要讨论的的就是:结构发生变化时,文档的意义也会变化的.对元素的位置同,解释也不同.所以元素的位置很重要.

person
 namexiaoyang/name
 address
  namewuhan/name
 /address
/person

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)

  上面两个name元素的虽然名字一样,但是意义是不同的,我们知道,XML是用来表示数据的,数据是有意义的,上面的两个name的意义就不一样.

  在开发XML文档的时候,关键是可以自己创建标记,在定义标记的时候,标记一般与标记包含的内容有关,比如上面的name就是这样,一个表示人的名字,一个表示地址名,但是这样就很容易混淆,所以我们就要用命名空间(以后讲解的)来确保同名的元素能够正确解释.

  好了,以上就是创建良好的XML的时候对元素的约束和规则.希望大家理解.

展开更多 50%)
分享

猜你喜欢

掌握XML系列(3)---创建格式良好的XML文档 续编

Web开发
掌握XML系列(3)---创建格式良好的XML文档 续编

掌握XML系列(4)---创建格式良好的XML文档

Web开发
掌握XML系列(4)---创建格式良好的XML文档

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

XML新手入门 创建构造良好的XML

Web开发
XML新手入门 创建构造良好的XML

在Word 2007中创建XML文档

电脑入门
在Word 2007中创建XML文档

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

简单的XML操作:XML文件创建

Web开发
简单的XML操作:XML文件创建

Thinking XML: 创建 XML 的好建议

Web开发
Thinking XML: 创建 XML 的好建议

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

VC中对office的操作

VC中对office的操作

使用XmlTextWriter生成XML文件

使用XmlTextWriter生成XML文件
下拉加载更多内容 ↓