1700417344
1700417345
请把它想成一个描述公司名称、地址和员工数量的XML文档。用和]>括起来的部分就是DTD。DTD定义了在
标签中可以有一个以上标签;在标签中可以包含,,标签。只要定义了这样的DTD,当遇到那些虽然记录了公司名称和地址,但还没有员工数量的数据时,就可以判断出这不是一个有效的XML实例
1700417346
1700417347
与DTD相同,还有一个名为XML Schema的技术也可用于定义XML实例的结构。在XML中,DTD借用了可称得上是标记语言始祖的SGMI(Standard Generalized Markup Language,标准通用标记语言)的语法。而XML Schema是为了XML新近研发的技术,因此它可以对XML文档执行更严格的检查,例如检查数据类型或数字位数等。DTD是1996年发布的W3C推荐标准,而XML Schema发布于2001年。今后将成为主流的是XML Schema,而不是古老的DTD
1700417348
1700417349
1700417350
1700417351
1700417353
计算机是怎样跑起来的 11.8 用于解析XML的组件
1700417354
1700417355
前面介绍过,如果用XML文档记录信息,计算机就可以自动地进行处理。那么编写处理XML文档的程序时应该怎么做呢?
1700417356
1700417357
也许有人会想:因为XML文档是纯文本文档,所以无论是用BASIC还是C语言,只要用某种编程语言编写一个能够读写文件的程序就可以了……当然没错!但,如果要亲手从零开始编写这样的程序太麻烦了。像是切分标签之类的处理,即便XML文档的内容不同,其步骤也大致相同。要是有谁能提供现成的这部分处理的代码就好了–这样想的人应该不止笔者一个吧
1700417358
1700417359
的确存在用于处理XML文档的程序组件。比如已经成为W3C标准的DOM(Document Object Model,文档对象模型)以及由XML-dev社区开发的SAX(Simple API for XML)。其实无论是DOM还是SAX,都只是组件的规范,实际的组件由某个厂商或社区提供。
1700417360
1700417361
如果使用的是Windows,那么就应该已经安装了一个由微软提供的、遵循DOM规范的组件(一个名为msxml3.dll的DLL文件)。下面就使用VBScript编程语言,试着编写一个实验程序。用记事本编写出如代码清单11.1所示的程序
1700417362
1700417363
代码清单11.1 使用了DOM的程序
1700417364
1700417365
Set obj=CreateObject(“Microsoft.XMLDOM”)
1700417366
1700417367
obj.async=False
1700417368
1700417369
obj.Load “MyPet.xml”
1700417370
1700417371
s=””
1700417372
1700417373
For i=1 To obj.documentElement.childNodes.length
1700417374
1700417375
s=s&obj.documnetElement.childNodes.Item(i-1).nodeName
1700417376
1700417377
s=s&”…”
1700417378
1700417379
s=s&obj.documentElement.childNodes.Item(i-1).Text
1700417380
1700417381
s=s&vbCrLf
1700417382
1700417383
Next
1700417384
1700417385
MsgBox s
1700417386
1700417387
保存为TestProg.vbs,这个文件要和之前编写的MyPet.xml放置在同一文件夹中。双击TestProg.vbs图标运行程序(如图11.5所示)。
1700417388
1700417389
图11.5 代码清单11.1执行结果
1700417390
1700417391
1700417392
1700417393
[
上一页 ]
[ :1.700417344e+09 ]
[
下一页 ]