| |
jaxp api--嵌入不同的解释器 sax解释器+dom解释器+xsl转换器 javax.xml.parsers中加载xml文档的类: documentbuilder documentbuildrfactory saxparser saxparserfactory ===================================== sax api sax的xml解释器:apache的xerces或crimson 处理xml文档的接口: contenthandler entityresolver errohandler dtdhandler declhandler lexicalhandler ====================================== dom api 两个dom标准:dom level1 dom level 2 core 节点 node-节点类型接口层次结构的根。 document-树结构的根 element-xml元素 text-元素内的文本 attr-元素的特性 cdata sectionn-cdata nodelist-子节点的集合 processinginstruction-指令 comment-包含注释的信息 documentfragment-document的消减版,用于在树中移动节点 documenttype-文档类型定义的子集。 entity-dtd中的实体标记 entityreference-xml文档中的实体引用 notation-dtd中的符号标记 从程序中读取x m l文档基本上有三种方式: 1把x m l只当做一个文件读取,然后自己挑选出其中的标签。这是黑客们的方法,我们不推荐这种方式。 你很快会发现处理所有的特殊情况(包括不同的字符编码,例外约定,内部和外部实体,缺省属性等)比想象的困难得多; 你可能不能够正确地处理所有的特殊情况,这样你的程序会接收到一个非常规范的x m l文档,却不能正确地处理它。 要避免这种想法:xml解析器似乎并不昂贵(大多数是免费的)。 2可以用解析器分析文档并在内存里创建对文档内容树状的表达方式:解析器将输出传递给文档对象模型,即dom。 这样程序可以从树的顶部开始遍历,按照从一个树单元到另一个单元的引用,从而找到需要的信息。 3也可以用解析器读取文档,当解析器发现标签时告知程序它发现的标签。 例如它会告知它何时发现了一个开始标签,何时发现了一些特征数据,以及何时发现了一个结束标签。 这叫做事件驱动接口,因为解析器告知应用程序它遇到的有含义的事件。 如果这正是你需要的那种接口,可以使用sax。 sax是只读的 dom可以从xml原文件中读取文档,也可以创建和修改内存中的文档。相比较而言,sax是用来读取xml文档而不是书写文档。 可扩展样式语言(xsl,extensible sytlesheet language)是一种基于xml的语言,它被设计用来转换xml文档到另一种xml文档或转换xml文档为可翻译对象。 原始的xsl语言已经被分割成三种不同的语言: 1转换工具(xslt)是一种转换xml文档到其他xml文档的语言 2翻译工具(xslf—可以包括x s lt的使用) 3xml分级命令处理工具(xpath) xsl有它自已的根,不管是在层叠样式表(css)中还是在一种叫dsssl(文档样式语义和规格语言—读为'deessel')的语言中。 随着它的发展,xsl的样式表现变得更接近于css和远离dsssl
|
|