package itcast.sax;

 import java.io.IOException;

 import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory; import org.xml.sax.SAXException;
import org.xml.sax.XMLReader; public class Demo { public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
//1、创建解析工程
SAXParserFactory factory = SAXParserFactory.newInstance(); //2、得到解析器
SAXParser sp = factory.newSAXParser(); //3、得到读取器
XMLReader reader = sp.getXMLReader(); //4、设置内容处理器
reader.setContentHandler(new TagValueHandler()); //5、读取xml文档内容
reader.parse("src/book.xml");
} }
 package itcast.sax;

 import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
//获取指定标签值
public class TagValueHandler extends DefaultHandler { private String currentTag;//记住当前解析到的是什么标签
private int needNumber=1;
private int currentNumber; @Override
public void characters(char[] ch, int start, int length) throws SAXException { if("editor".equals(currentTag)&&currentNumber==needNumber){
System.out.println(new String(ch,start,length));
} } @Override
public void endElement(String uri, String localName, String name)
throws SAXException { currentTag=null;
} @Override
public void startElement(String uri, String localName, String name,
Attributes atts) throws SAXException { currentTag=name;
if(currentTag.equals("editor")){
currentNumber++;
}
} }
 package itcast.sax;

 import org.xml.sax.Attributes;
import org.xml.sax.ContentHandler;
import org.xml.sax.Locator;
import org.xml.sax.SAXException; public class ListHandle implements ContentHandler {
@Override
public void startElement(String uri, String localName, String name,
Attributes atts) throws SAXException { System.out.println("<" + name + ">"); for(int i=0;atts!=null&&i<atts.getLength();i++){
String attName = atts.getQName(i);
String attValue = atts.getValue(i);
System.out.println(attName+"="+attValue);
} } @Override
public void characters(char[] ch, int start, int length)
throws SAXException { System.out.println(new String(ch, start, length));
} @Override
public void endElement(String uri, String localName, String name)
throws SAXException {
System.out.println("<" + name + ">");
} @Override
public void startDocument() throws SAXException { } @Override
public void endDocument() throws SAXException {
// TODO Auto-generated method stub } @Override
public void endPrefixMapping(String arg0) throws SAXException {
// TODO Auto-generated method stub } @Override
public void ignorableWhitespace(char[] arg0, int arg1, int arg2)
throws SAXException {
// TODO Auto-generated method stub } @Override
public void processingInstruction(String arg0, String arg1)
throws SAXException {
// TODO Auto-generated method stub } @Override
public void setDocumentLocator(Locator arg0) {
// TODO Auto-generated method stub } @Override
public void skippedEntity(String arg0) throws SAXException {
// TODO Auto-generated method stub } @Override
public void startPrefixMapping(String arg0, String arg1)
throws SAXException {
// TODO Auto-generated method stub } }
 <?xml version="1.0" encoding="UTF-8"?>
<书架>
<书>
<bookname name="zero">java jiuyepeixunjiaocheng</bookname>
<editor>zhangxiaoxiang</editor>
<price>109yuan</price>
</书>
<书>
<bookname>javaWebprogramming</bookname>
<editor>lihuoming</editor>
<price>28.00yuan</price>
</书>
</书架>

最新文章

  1. WC2015 酱油记
  2. 富士通F-02D 1630万像素翻盖手机docomo官方解锁送充电器
  3. Windows 7,64位机器上安装DB2 7.2+FP7
  4. 【下有对策】verycd没有的资源有很多方法下载
  5. hdu 1348 Wall(凸包模板题)
  6. c语言中的结构体为值类型,当把一个结构体赋值给另一个结构体时,为值传递
  7. 前端 HTML基础
  8. Find Successor &amp; Predecessor in BST
  9. spring注解注入:&lt;context:component-scan&gt;使用说明
  10. myql 注意事项
  11. [ios3-地图] 如何在iOS地图上高效的显示大量数据 [转]
  12. c#中常用集合类和集合接口之集合类系列【转】
  13. 浅谈event.client、event.screen与event.offset
  14. 学习笔记DL005:线性相关、生成子空间,范数,特殊类型矩阵、向量
  15. Apache 配置方法(虚拟目录、域名、虚拟主机等)
  16. BZOJ1117 [POI2009]救火站Gas 贪心
  17. FlannBasedMatcher 立体匹配
  18. 设计模式学习心得&lt;汇总&gt;
  19. PCI 设备调试手段
  20. Docker技术入门与实战 第二版-学习笔记-2-镜像构建

热门文章

  1. http://www.cnblogs.com/baizhanshi/p/5593431.html
  2. Myeclipse中创建Maven工程的时候没有 webapp-javaee6
  3. Codeforces Round #366 Div.2[11110]
  4. Hadoop执行作业时报错:java.lang.OutOfMemoryError: Java heap space
  5. Javascript中括号“[]”的多义性
  6. Long-Short Memory Network(LSTM长短期记忆网络)
  7. KMP算法 hdu4686 Oulipo
  8. -webkit-text-size-adjust:none;
  9. Codeforces Round #210 (Div. 2) A. Levko and Table
  10. [Cocos2D-x For WP8]ParallaxNode视差