📄 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 + -