再回首Java第二十一天

DOM和SAX解析技术的实现

实现DOM和SAX即系技术的方法有多种,下面列出了常用的几种方法

  • JAXP(Java API for XML:JAXP是对应用程序隐藏了特定解析器的接口,它提供了访问DOM和SAX实现的抽象层机制
  • JDOM:JDOM是一种使用XML的独特Java工具包,用于快速开发XML应用程序,它基于树型结构,利用纯Java的技术对XML文旦实现解析、生成、序列化以及多种操作。JDOM直接为Java编程服务。它利用更为请有力的Java语言的诸多特性(方法重载、集合概念以及樱色),鼥SAX和DOM的功能有效地结合起来,同时JDOM也是用Java语言读、写、操作XML的新API函数,在简单和高效的前提下,这些API函数被最大限度的优化,以弥补DOM及SAX在实际应用当中的不足之处,在JDOM中,XML元素就是Element的实例,XML属性就是Attribute的实例,XML文档本身就是Element的实例,因此创建一个新的JDOM对象就像在java中使用new操作符一样容易
  • DOM4J:DOM4j是一个易用的,开源的库,用于XML、XPath和XSLT。它应用于java平台,采用了java集合框架并完全支持DOM、SAX和JAXP。在Java开发社区里,DOM4J的使用最为广泛。JDOM的操作非常简单,但是在处理大XML文件时性能表现不佳,解析10M文档时就会出现内存溢出。而DOM4j是一个非常优秀的JavaXML API DOM4J使用大量的接口,这也是它被认为比JDOM灵活的原因

DOM4j的主要接口

Attribute定义了XML的属性

CDATA定义了XML CDATA区域

CharacterData标识基于字符的节点。如CDATA,Comment,Text

Comment定义了XML注释的行为

Document定义了XML文档

DocumentType定义了XML DOCTYPE声明

Element定义了XML元素

ElementHandler定义了Element对象的处理器

Node为所有的dom4j中XML节点定义了多态行为

ProcessingInstruction定义了XML处理器指令

Text定义XML文本节点

XPath在分析一个字符串后会提供一个XPath表达式

时间: 2024-10-09 00:37:52

再回首Java第二十一天的相关文章

再回首Java第二十二天

类加载器的种类: 1.Bootstrap ClassLoader: 负责加载Java核心类,即$JAVA_HOME/jre/lib/rt.jar,由C++实现 2.Extension ClassLoader: 负责加载Java平台扩展功能的一些jar,包括$JAVA_HOME/jre/lib/*.jar和$JAVA_HOME/jre/lib/ext/*.jar 3.System(App) ClassLoader:负责加载classpath中指定的jar或.class 4.Custom Class

再回首Java第二十六天

推回输入流在Java输入.输出流体系中有两个特殊的流与众不同,就是PushbackInputStream/PashbackReader,它们都提供了如下三个方法:?void unread(byte[]/char[] buf):将以一个字节/字符数组内容推回到推回缓冲区里,从而允许重复读取刚刚读取的内容.?void unread(byte[] /char[] buf, int off,int ben):把一个字节/字符数组从off开始,长度为len字节/字符的内容推回到推回缓冲区里,从而允许重复读

再回首Java第十三天

Java异常处理机制主要依赖与五个关键字try catch throw throws finally.try代码块中放置可以发生异常的代码,catch后面参数用表明捕获的异常的类型,异常处理机制将会把抛出的异常实例赋值给这个参数,catch代码块中代码用于打印异常,处理异常,catch可以有多个用于捕获不同类型的异常.最后还可以有一个finally用于回收try代码块中打开的资源,不管讨try代码块中有没有出现异常Java异常处理机制会保证finally块总会被执行.Throws关键字在方法的签

再回首Java第三天

JDK(Java SE Development Kit) 即Java标准版开发包,提供了编译.运行Java程序所需的各种工具和资源包括Java编译器,Java运行时环境,以及常用的Java类库. JRE(Java Runtime Environment) 即Java运行时环境,包含了JVM.类加载器.字节码校验器及大量的基础类库. Java运行时数据区分为:1.程序计数器 2.Java栈 3.本地方法栈 4.方法区 5.堆 程序计数器占用小部分内存区域,程序通过它的值寻找要执行的语句的字节码,由

再回首Java第二十五天

流的分类按照流的流向来分,可以分为输入流和输出流?输入流:只能从中读取数据,不能向其写数据?输出流:只能向其写数据,不从能从中读数据 Java输入流主要有InputStream和Reader作为基类,Java输出流主要以OutputStream和Writer作为基类 字节流和字符流字节流和字符流的用法几乎完全一样,区别在于字节流和字符流所操作的数据单元不一样:字节流操作的最小数据单元是8位的字节,而字符流操作的最小数据单元是16位的字符 节点流和处理流可以从向一个特定的IO设备(如磁盘.网络)读

再回首Java第二十四天

Callable和FutureJava1.5开始,Java提供了Callable接口,Callable接口提供了一个call()方法作为线程的执行体,但call()方法run()方法的功能更强大:?call()方法可以有返回值?call()方法可以声明抛出异常因此我们完全可以提供一个Callable对象作为Thread的target,而该线程的执行体就是该Callable对象的call方法.问题是:Callable对象时JDK1.5开始新增的接口,而它并不是Runnable的子接口,所以Call

再回首Java第二十天

线程池 线程池可以提高程序的性能,线程池中在程序的启动的时候,即会创建大量的空闲线程,程序可以将Runnable或Callable实现类的对象交给线程池,线程池就会腾出一条空闲线程来执行该实现类对象的run方法,run方法执行完后,该线程就再返回空闲状态.程序还可以通过设置线程池线程的数量来控制系统中并发线程的数量,来减少过多线程对系统性能的负担 使用线程池执行线程任务的步骤: ① 调用Executors类的静态工厂方法创建一个ExecutorService对象,该对象代表一个线程池② 创建Ru

再回首Java第十五天

类的加载 当程序主动使用某个类是,如果该类还没有被加载到内存中,系统就会通过加载.链接.初始化三个步骤对该类进行初始化,如果没有意外,JVM就会完成这三个步骤,所以有时也把这三个步骤称为类的加载和类的初始化. 类的加载是指将类的class文件读入内存,并为之创建一个java.lang.Class对象,也就是说当程序中使用任何类时,系统都会为之创建一个java.lang.Class对象 类的加载由类的加载器完成,类加载器通常由JVM提供,这些类加载器是程序运行的基础,JVM提供的加载器其称为系统加

再回首Java第十七天

同步锁JDk1.5之后,java提供了另一种线程同步机制:它通过显式定义同步锁对象来实现线程同步,在这种机制下,同步锁应该使用Lock对象充当.通常认为:Lock提供了比synchronized方法和synchronized代码块更广泛的操作,Lock实现允许更灵活的结构,可以具有很大的差别的属性,并且可以支持多个相关的Condition对象Lock是控制多个线程对共享资源进行访问的工具.通常Lock提供了对共享资源的独占访问,每次只允许一个线程对Lock对象加锁,线程访问共享资源之前应先获得L