(1)SAX时间接收器,接收SAX分析XML数据过程中的信息。 (2)SAX解析器,对XML数据文件进行分析的主题程序。 (3)XML数据文件,其中存储了被分析的数据。 还有其他的类,这里就不再列出了。使用SAX处理XML文件的基本思路是创作实现上面相应接口的类,并使用该类简体on个对应的时间信息。但考虑到程序设计的繁琐过程,目前有几种成熟使用SAX处理XML数据的方式:XMLReader模式、defaulthandler模式和handlerbase模式。 采用实现接口的方式处理SAX解析器中的时间,缺点在于需要给出很多未用方法的默认实现,增加了程序开发和维护的工作量。DefaultHandler是为客服该缺点而设计的一个类。该类位于org.XML。SAX.HELPERS保重,提供了接受SAX解析器分析信息的基本机制。通过据称该类并重写该特定成员,就可对应接受SAX解析器发布的某种时间信息。例如,标记开始时间等。 在JAVA开发环境中保存文件为example1.java。程序的基本内容如下: 首先引入SAX需要的包,即程序中的前三个包。程序的整体结构和DOM截然不同,上海网站建设公司在这里采用的是时间处理机制。所以程序分两部分:主题部分和时间处理器部分。 主题部分的内容在main()方法中。首先是生成解析器对象。和DOM对象的生成过程使用同样的工厂模式。使用javax.xml.parsers包中的SAXParserFactory类调用其类方法nowInstance()实例化一个SAX解析器工程对象: SAXParserFactory factory=SAXParserFactory.newInstance(); 之后工程对象SAX解析器工程对象调用newSAXParser()返回一个SAX解析器对象: SAXParser saxParser=factory.newSAXParser(); 其次是生成事件处理器对象,最后用saxParser.parse(new File("example1.xml"),handler);指定解析器解析的XML文档和使用的时间处理器。 时间处理器是继承自DefaultHandler类。DefaultHandler类是org.xml.sax.helpers包中的类,该类或其子类的对象称作SAX解析器时间处理器。DefaultHandler类实现了ContenHandler、DTDHandler、EntityResolver和ErrorHandler接口中的方法。也就是说,该类为多个SAX事件处理器做了默认实现。编写SAX应用程序时可以放心地使用它做简化工作,只对感性其的方法进行重载,而不管其他的方法。可以这样讲,编写SAX应用程序工作的重点是编写事件处理器。上海网站建设公司在本文中用到了如下方法: startDocument()是开始处理文档事件的处理方法。次时间在一次处理过程中只出现一次。 endDocument()是结束处理文档事件的处理方法。此事件再一次处理工程中只出现一次,是处理过程中出现的最后一个时间。 startElement()是开始标记事件的处理方法。当处理器遇到一个开始标记时发生此事件,当然此事件可以出现多次。 endElement()是结束标记事件的处理方法。当处理器遇到一个结束标记时发生此事件,当然,此事件可以出现多次。需要注意的是,他和开始标记事件发生的次数是相同的,不管文档中的标记是非空标记还是空标记。 characterc()是处理标记文本数据的方法。当处理器遇到文本数据时产生此事件,这里处理的文本数据包括空白的内容,上海网站建设公司在之后的内容中会有详细讲解。 |