jaxp通过sax方式解析xml文件
2017-02-21 16:31
295 查看
简述:
sax解析为事件驱动,我们通过继承DefaultHandler这个类,覆写其中的三个方法,startElement(),endElement(),character(),这三个方法,会随着sax解析自动执行,例如startElement()方法,解析到开始标签时,会自动启动。xml文件如下:
(p1.xml)<?xml version="1.0" encoding="UTF-8"?> <person > <p1> <name>AAA</name> <age>20</age> </p1> <p1> <name>BBB</name> <age>99</age> </p1> </person>
java代码
MyDefault1类:把整个XML文件输出到屏幕Mydefault2类:获取全部name标签的值
package xxy.testJaxp.sax; import java.io.IOException; import javax.xml.parsers.ParserConfigurationException; 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; /** * @author 许湘扬 2017-2-21 * @说明 使用jaxp对xml进行进行sax解析 */ public class testJaxp { public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException { //1、创建解析工厂 SAXParserFactory saxParseFactory=SAXParserFactory.newInstance(); //2、创建解析器 SAXParser saxParser=saxParseFactory.newSAXParser(); //3、执行parse方法 saxParser.parse("src/p1.xml", new MyDefault1()); saxParser.parse("src/p1.xml", new Mydefault2()); } } /* * 继承DefaultHandler类,来实现xml文件的输出到屏幕 */ class MyDefault1 extends org.xml.sax.helpers.DefaultHandler { public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { System.out.print("<"+qName+">"); } public void characters(char[] ch, int start, int length) throws SAXException { System.out.print(new String(ch,start,length)); } public void endElement(String uri, String localName, String qName) th ac7c rows SAXException { System.out.print("</"+qName+">"); } } /* * 继承DefaultHandler类,来实现获得所有name元素的值 */ class Mydefault2 extends DefaultHandler { //判断位,保证只输出name标签的值 boolean flag=false; public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { if (qName.equals("name")) flag=true; } public void characters(char[] ch, int start, int length) throws SAXException { if (flag==true) System.out.println(new String(ch,start,length)); } public void endElement(String uri, String localName, String qName) throws SAXException { if (qName.equals("name")) flag=false; } }
相关文章推荐
- java--通过sax方式解析xml文件的简单实例
- 用JAXP的SAX方式解析XML文件
- JAVA SAX 方式解析XML文件
- Android中xml文件解析 SAX方式 与 PULL方式
- Android学习笔记41-XML文件解析(SAX方式)
- 利用 Jaxp (Sax) 解析xml文件--- 解析指定节点的值
- 解析XML文件的方式:DOM和SAX
- Android中使用SAX方式解析XML文件
- sax方式解析xml文件
- XML文件解析(SAX方式)
- Android学习笔记41:XML文件解析(SAX方式)
- xml文件的解析解析方式及Dom解析与Sax解析的区别
- android解析xml文件的方式之SAX方式
- 【Android学习】XML文本的三种解析方式(通过搭建本地的Web项目提供XML文件)
- Android 解析XML文件的三种方式 DOM,SAX,PULL
- Android中使用SAX方式解析XML文件
- Android 解析XML文件的三种方式 DOM,SAX,PULL
- 在android开发中,经常用到去解析xml文件,常见的解析xml的方式有一下三种:SAX、Pull、Dom解析方式。最近做了一个android版的CSDN阅读器,用到了其中的两种(sax,pull)
- android解析xml文件的方式(其二)SAX
- Qt 中sax方式 解析 xml文件