欢迎来到天天文库
浏览记录
ID:51618138
大小:843.50 KB
页数:59页
时间:2020-03-26
《计算机集成印刷系统教学课件 作者 罗如柏11 基于DOM的JDF开发技术-数印 .ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第11章基于DOM的JDF开发技术计算机集成印刷系统11.1DOM简介XMLDOM(XMLDocumentObjectModel)即XML文档对象模型。XMLDOM是:用于XML的标准对象模型用于XML的标准编程接口中立于平台和语言W3C的标准XMLDOM是用于获取、更改、添加或删除XML元素的标准。JDF是XML的应用标准,因此JDF文件的本质是XML文档。在对JDF文档进行解析处理时,完全可以使用XML文档解析技术。在生产过程中需要对JDF进行形式多样的解析处理,如:在JDF文档储存的读取感兴趣的信息、对JDF节点进行信息的完善处理、
2、在JDF文档中摘取出感兴趣的JDF子节点等。对于不同的解析JDF操作,都可以通过XML文档的解析操作技术来完成。11.2DOM接口11.2.1DOM节点根据DOM,XML文档中的每个成分都是一个节点。整个文档是一个文档节点;每个XML标签是一个元素节点;包含在XML元素中的文本是文本节点;每一个XML属性是一个属性节点;注释属于注释节点。DOM对XML文档进行分析后,其中的信息会被转化成一棵节点对象树。加载XML文档后的DOM节点对象树有且只有1个11.2.2Document(文档对象)Document节点是DOM树中的根节点,即对XML
3、文档进行操作的入口节点。通过Document节点,可以访问到文档中的其他节点,如处理指令、注释、文档类型以及XML文档的根元素节点等。11.2.3DOM解析分(解)析器把XML读入内存,并把它转换为可被应用程序访问的XMLDOM对象;应用程序通过XML分析器所提供的DOM接口对分析结果进行操作,从而间接地实现对XML文档的访问与操作。微软的XML解析器:msxml.dll11.2.3DOM编程接口DOM把XML模拟为一系列节点接口。可通过C++或其他编程语言来访问节点。DOM编程接口通过一套标准的“属性”和“方法”来定义的。属性经常按照“
4、某事物是什么”的方式来使用(例如节点名是"book")。方法经常按照“对某事物做什么”的方式来使用(例如删除"book"节点)。DOM编程接口-DOM属性一些典型的DOM属性:x.nodeName-x的名称x.nodeValue-x的值x.parentNode-x的父节点x.childNodes-x的子节点x.attributes-x的属性节点x是一个DOM节点对象。一些典型的DOM方法:x.getElementsByTagName(name)-获取带有指定标签名称的所有元素x.appendChild(node)-向x插入子节点x.rem
5、oveChild(node)-从x删除子节点x是一个DOM节点对象。DOM编程接口-DOM方法11.3.1加载XML第一行创建空的微软XML文档对象第二行关闭异步加载,这样可确保在文档完整加载之前,解析器不会继续执行脚本第三行告知解析器加载为“txt“指向的一个XML文件或字符串的片断。JavaScript的方法(微软的XML解析器)11.3XML的加载与遍历“加载XML”小结:首先,通过msxml.dll创建一个“文档对象”(Document);然后通过load方法来加载XML文档,在“文档对象”内加载一个“格式良好的”XML文档。从而
6、建立DOM树同XML文档之间的关联。遍历XML文档是通过遍历对应的DOM树来实现的;访问DOM树中的任何一个节点,就是DOM树的遍历。11.3.2遍历XML文档遍历方法(VB示例)访问目标遍历过程VB代码:利用节点的关系在节点树中进行导航:documentElement属性可返回文档的根节点。遍历方法(JavaScript示例1)xmlDoc-由解析器创建的XMLDOMgetElementsByTagName("title")[0]-第一个
7、alue-节点的值(文本自身)HarryPotter利用getElementsByTagName()返回拥有指定标签名的所有元素:“遍历XML文档”小结遍历从加载XML文档后的“文档对象”(Document)开始;遍历的方法可以有:利用节点的关系在节点树中进行导航利用指定标签名定位访问:11.4DOM对文档的操作11.4.1添加子元素1、选择要创建新子节点的节点对象2、创建新节点3、将新节点添加到子元素集合中4、保存修改后的XML文档Setnode=doc.selectsingleNode(“//nodename”)dimnewnodes
8、etnewnode=doc.createnode(1,”newChild-name”,””)node.appendChild(newnode)doc.save(Server.MapPath(“
此文档下载收益归作者所有