?? saxreader.java
字號:
import org.xml.sax.helpers.DefaultHandler;
import javax.xml.parsers.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import java.util.*;
import java.io.*;
import java.net.*;
public class SAXReader extends DefaultHandler
{
//定義一個堆棧,用來存儲數據
Stack tags = new Stack();
//當遇到文檔開始標記時會自動觸發startDocument方法
public void startDocument() throws SAXException
{
System.out.println( "-------START-------" );
}
//當遇到文檔結束標記時會自動觸發endDocument方法
public void endDocument() throws SAXException
{
System.out.println( "--------END--------" );
}
//當遇到標記開始時會自動觸發startElement方法
//參數namespaceURI對應的是名空間的URI,如果沒有則為空串
//參數localName對應的是名空間的局部名,如果沒有則為空串
//參數qName對應的是標記名
//參數attr對應的是屬性名
public void startElement(String namespaceURI,String localName,String qName,Attributes attr ) throws SAXException
{
tags.push(qName);
}
//當遇到標記結束時會自動觸發endElement方法
public void endElement(String namespaceURI,String localName,String qName) throws SAXException
{
tags.pop();
}
//參數ch是包含字符串的字符數組
//參數start是字符串的開始位置
//參數length是字符串的長度
public void characters(char[] ch, int start, int length)throws SAXException
{
//從堆棧中獲取當前節點的信息
String tag = (String) tags.peek();
//判斷當前節點的名稱,如果是符合要求,則輸出屬性值
if (tag.equals("編號"))
{
System.out.println("編號:" + new String(ch, start, length));
}
else if (tag.equals("名稱"))
{
System.out.println("名稱:"+ new String(ch, start, length));
}
else if (tag.equals("價格"))
{
System.out.println("價格:" + new String(ch, start, length));
}
}
public static void main( String[] argv )
{
try
{
//所要讀的XML文件名
String sFilename = "ware.xml";
//為解吸XML文件創建SAX對象
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser saxParser = null;
saxParser = spf.newSAXParser();
saxParser.parse(new File(sFilename),new SAXReader());
/*
以下部分是建立SAX解吸器對象的另外一種方法
// 建立SAX 2解析器...
XMLReader xr = XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser");
// 安裝ContentHandler
xr.setContentHandler(new SAXReader());
// 解析文件
xr.parse(new InputSource(new FileReader(sFilename)));
*/
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -