?? saxparsepage.java
字號:
import javax.xml.parsers.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import java.io.*;
/**
* <p>Title: 使用SAX解析XML</p>
* <p>Description: 使用SAX接口解析book.xml文件</p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Filename: SaxParsePage.java</p>
* @author 杜江
* @version 1.0
*/
public class SaxParsePage extends DefaultHandler {
/**
*<br>方法說明:主方法,聲明解析工廠和加載XML文件
*<br>輸入參數:
*<br>返回類型:
*/
public static void main(String[] argv) {
try {
//建立SAX解析工廠
SAXParserFactory spfactory = SAXParserFactory.newInstance();
//生成SAX解析對象
SAXParser parser = spfactory.newSAXParser();
//指定XML文件,進行XML解析
parser.parse(new File("book.xml"), new SaxParsePage());
} catch (Exception e) {
e.printStackTrace();
}
}
/**
*<br>方法說明:文件打開時調用
*<br>輸入參數:
*<br>返回類型:
*/
public void startDocument() {
System.out.println("***開始解析***");
}
/**
*<br>方法說明:當遇到開始標記時調用
*<br>輸入參數:
*<br>返回類型:
*/
public void startElement(String uri,
String localName,
String qName,
Attributes attributes) throws SAXException {
System.out.println("節點開始:" + qName);
for(int i=0;i<attributes.getLength();i++){
System.out.println("節點屬性名稱:" + attributes.getQName(i));
System.out.println("節點屬性值:"+attributes.getValue(i));
}
}
/**
*<br>方法說明:當分析器遇到無法識別為標記或者指令類型字符時調用
*<br>輸入參數:
*<br>返回類型:
*/
public void characters(char[] ch,
int offset,
int length) throws SAXException{
System.out.println("節點數據:" + new String(ch, offset, length));
}
/**
*<br>方法說明:當遇到節點結束時調用
*<br>輸入參數:
*<br>返回類型:
*/
public void endElement(String uri,
String localName,
String qName) {
System.out.println("節點結束:" + qName);
}
/**
*<br>方法說明:當到文檔的末尾調用
*<br>輸入參數:
*<br>返回類型:
*/
public void endDocument() {
System.out.println("****文件解析完畢****");
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -