xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<书架>
<书>
<书名>javaweb开发大全</书名>
<作者>班长</作者>
<售价>99.8元</售价>
<简介>这是不错啊</简介>
</书>
<书>
<书名>葵花宝典</书名>
<狗>小狗</狗>
<作者>岳不群</作者>
<售价>99.8两</售价>
<简介>欲练此功...</简介>
</书>
</书架>
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class SAXParserDemo {
public static void main(String[] args) {
try {
sax1();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* SAX解析
*
* @throws Exception
*/
public static void sax1() throws Exception {
// 获取SAX解析器工厂
SAXParserFactory factory = SAXParserFactory.newInstance();
// 获取解析器
SAXParser saxParser = factory.newSAXParser();
// 解析
saxParser.parse("src/book2.xml", new MyHandler2());
}
}
/**
* 获取 作者 标签内容
*
* @author Administrator
*/
class MyHandler2 extends DefaultHandler {
private boolean flag = false;
/**
* 解析到 开始 标签默认调用
*/
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
if ("作者".contains(qName)) {
flag = true;
}
}
/**
* 解析到文本内容自动调用
*/
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
if (flag) {
String string = new String(ch, start, length);
System.out.println(string);
}
}
/**
* 解析到 结束 标签默认调用
*/
@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
flag = false;
}
}
/**
* 自己的事件处理器
*
* @author Administrator
*
*/
class MyHandler extends DefaultHandler {
/**
* 解析到 开始 标签默认调用
*/
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
System.out.println("开始标签:" + qName);
}
/**
* 解析到文本内容自动调用
*/
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
String string = new String(ch, start, length);
System.out.println(string);
}
/**
* 解析到 结束 标签默认调用
*/
@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
System.out.println("结束标签:" + qName);
}
}
网友评论