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

2016-02-19 19:02 3 1 收藏

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

【 tulaoshi.com - Web开发 】

  前一篇的小结,上一篇我写了创建良好的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的文本,然后用浏览器打开,结果会报错!(大家最好试试)看看怎么改欢迎大家提问!

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

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

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

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

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

     datamydataIt is        whitespace/mydata/data

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

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

  It iswhitespace(空白合并了)

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

     data  mydataIt is    whitespace/mydata  /data

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

  所以,我们可以在元素的外部使用空白来缩进和对其代码,便于设计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

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

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

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

来源:https://www.tulaoshi.com/n/20160219/1619876.html

延伸阅读
标签: Web开发
       对结点的属性赋值   一旦创建了结点,还要对其属性赋值,如独立的标识符,或者特性值。你要用到SetAttribute方法。该方法接收两个参数— 属性名和属性值。例如,下列代码创建了属性名SHIPPING_DATASOURCE 和属性值NORTH_ATLANTIC_SHIPPING:      objXMLroot.SetAttribute...
标签: Web开发
引言 随着XML的普及以及在动态WEB应用程序中大量应用,如何通过.NET创建,删除,修改XML文件变的也来也重要了。一个简单的概念是,XML文件跟大的文本文件并没有什么区别,同时它是先于.NET出现,很多ASP的开发者,当他需要程序输出XML文件的时候,通常都是用Response.Write()方法输出为XML文档。 使用Response.Write()的方式来输...
标签: Web开发
2.注意大小写的区分 HTML中对大小写的区分不是很敏感,但XML对大小写要求非常严格,如果开始的标识是大写,那么结束的标识也一定是大写。 3.“有始有终”所有的标识必须有相应的结束标识 熟悉HTML的人都知道HTML中有很多类似
标签: Web开发
我以前在介绍XML和让别人试着使用DOM时,不只一个人问过我用DOM是否能用来凭空直接生成一个XML文件。 当然,这是当然可以的了,其次是怎么写程序呢。 那我就这个问题,专门在这篇文章中用VB和MSXML的COM接口的DOM实现的一个例子来讲一下: 首先我要说明的是,我用的MSXML的版本是IE5带的,版本号是5.0.2919.3800,微软的早...
标签: Web开发
XML文档因为其固有的描述性特性而趋向于变得很罗嗦。其结果是文档会由于被描述的数据增多而变得很长,而这种很大的文档会在需要同其他实体进行交换时出现问题。和其他文档(比如普通文本文件(flat file)或者Electronic Data Interchange (EDI))比起来XML文档就显得特别冗长。为了举例说明这个概念,让我们看看以下这个普通文本文件: John...

经验教程

47

收藏

55
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部