java解析xml文件 (四)

2014-11-24 10:41:14 · 作者: · 浏览: 2
teTextNode(String.valueOf(studentBean.getAge()));
age.appendChild(tAge);2.SAX (Simple API for XML)

此方法主要由XML-DEV 邮件列表的成员开发的,SAX是基于事件的方法,它很类似于标签库的处理机制,在标签开始、结束以及错误发生等等地方调用相应的接口实现方法,不是全部文 档都读入内存。 SAX具有优异的性能和利用更少的存储空间特点。SAX 的设计只考虑了功能的强大性,却没有考虑程序员使用起来是否方便。

使用必须扩展ContentHandler、ErrorHandler、DTDHandler等,但是必须扩展ContentHandler(或者DefaultHandler )。


Java代码 import org.xml.sax.*;
public class MyContentHandler implements ContentHandler {
… …
}
/**
* 当其他某一个调用事件发生时,先调用此方法来在文档中定位。
* @param locator
*/
public void setDocumentLocator(Locator locator){
}
/**
* 在解析整个文档开始时调用
* @throws SAXException
*/
public void startDocument() throws SAXException{
System.out.println("** Student information start **");
}
/**
* 在解析整个文档结束时调用
* @throws SAXException
*/
public void endDocument() throws SAXException{
System.out.println("**** Student information end ****");
}
/**
* 在解析名字空间开始时调用
* @param prefix
* @param uri
* @throws SAXException
*/
public void startPrefixMapping(String prefix
, String uri) throws SAXException{
}
/**
* 在解析名字空间结束时调用
* @param prefix
* @throws SAXException
*/
public void endPrefixMapping(String prefix) throws SAXException{
}
/**
* 在解析元素开始时调用
* @param namespaceURI
* @param localName
* @param qName
* @param atts
* @throws SAXException
*/
public void startElement(String namespaceURI, String localName
, String qName, Attributes atts) throws SAXException{
}
/** 在解析元素结束时调用
* @param namespaceURI
* @param localName 本地名,如student
* @param qName 原始名,如LIT:student
* @throws SAXException */
public void endElement(String namespaceURI, String localName,String qName) throws SAXException{
if (localName.equals(“student”)){
System.out.println(localName+":"+currentData);
}
}
[java] import org.xml.sax.*;
public class MyContentHandler implements ContentHandler {
… …
}
/**
* 当其他某一个调用事件发生时,先调用此方法来在文档中定位。
* @param locator
*/
public void setDocumentLocator(Locator locator){
}
/**
* 在解析整个文档开始时调用
* @throws SAXException
*/
public void startDocument() throws SAXException{
System.out.println("** Student information start **");
}
/**
* 在解析整个文档结束时调用
* @throws SAXException
*/
public void endDocument() throws SAXException{
System.out.println("**** Student information end ****");
}
/**
* 在解析名字空间开始时调用
* @param prefix
* @param uri
* @throws SAXException
*/
public void startPrefixMapping(String prefix
, String uri) throws SAXException{
}
/**
* 在解析名字空间结束时调用
* @param prefix
* @throws SAXException
*/
public void endPrefixMapping(String prefix) throws SAXException{
}
/**
* 在解析元素开始时调用
* @param namespaceURI
* @param localName
* @param qName
* @param atts
* @throws SAXException
*/
public void startElement(String namespaceURI, String localName
, String qName, Attributes atts) throws SAXException{
}
/** 在解析元素结束时调用
* @param namespaceURI
* @param localName 本地名,如student
* @param qName 原始名,如LIT:student
* @throws SAXException */
public void endElement(String namespaceURI, String localName,St