⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 saxreader.java

📁 jsp动态网站开发技术与实践 电子工业出版社 随书附赠源代码
💻 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 + -