xml sax
来源:互联网 发布:mac安装twisted 编辑:程序博客网 时间:2024/05/21 06:55
package com.knox.musicplayer.util.io;
import java.io.IOException;
import java.io.InputStream;
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;
import android.os.Handler;
import android.os.Message;
import com.knox.musicplayer.entity.Music;
public class MusicXmlParser {
private Handler mHandler;
public static final int END_ELEMENT = 1;
public static final int END_DOCUMENT = 2;
public static final int PARSER_DELAYED = 3;
public MusicXmlParser(Handler handler) {
this.mHandler = handler;
}
public void parse(InputStream is) throws ParserConfigurationException, SAXException, IOException{
if(is!=null){
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
parser.parse(is, new MusicDefaultHandler());
}
}
private class MusicDefaultHandler extends DefaultHandler {
private Music music;
private String tag;
@Override
public void startDocument() throws SAXException {
super.startDocument();
}
@Override
public void endDocument() throws SAXException {
super.endDocument();
if(mHandler!=null){
mHandler.sendEmptyMessage(END_DOCUMENT);
}
}
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
super.startElement(uri, localName, qName, attributes);
tag = localName;
if("music".equals(localName)){
music = new Music();
music.setId(Long.parseLong(attributes.getValue("id")));
}
}
@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
super.endElement(uri, localName, qName);
tag = null;
if("music".equals(localName)){
if(mHandler!=null){
Message msg = Message.obtain(mHandler);
msg.what = END_ELEMENT;
msg.obj = music;
msg.sendToTarget();
}
}
}
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
super.characters(ch, start, length);
String str = new String(ch, start, length);
if ("name".equals(tag)) {
music.setDisplayName(str);
} else if ("singer".equals(tag)) {
music.setArtist(str);
} else if ("albumpic".equals(tag)) {
music.setAlbumPath(str);
} else if ("musicpath".equals(tag)) {
music.setData(str);
} else if ("time".equals(tag)) {
music.setDuration(Long.parseLong(str));
}
}
}
}
import java.io.IOException;
import java.io.InputStream;
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;
import android.os.Handler;
import android.os.Message;
import com.knox.musicplayer.entity.Music;
public class MusicXmlParser {
private Handler mHandler;
public static final int END_ELEMENT = 1;
public static final int END_DOCUMENT = 2;
public static final int PARSER_DELAYED = 3;
public MusicXmlParser(Handler handler) {
this.mHandler = handler;
}
public void parse(InputStream is) throws ParserConfigurationException, SAXException, IOException{
if(is!=null){
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
parser.parse(is, new MusicDefaultHandler());
}
}
private class MusicDefaultHandler extends DefaultHandler {
private Music music;
private String tag;
@Override
public void startDocument() throws SAXException {
super.startDocument();
}
@Override
public void endDocument() throws SAXException {
super.endDocument();
if(mHandler!=null){
mHandler.sendEmptyMessage(END_DOCUMENT);
}
}
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
super.startElement(uri, localName, qName, attributes);
tag = localName;
if("music".equals(localName)){
music = new Music();
music.setId(Long.parseLong(attributes.getValue("id")));
}
}
@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
super.endElement(uri, localName, qName);
tag = null;
if("music".equals(localName)){
if(mHandler!=null){
Message msg = Message.obtain(mHandler);
msg.what = END_ELEMENT;
msg.obj = music;
msg.sendToTarget();
}
}
}
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
super.characters(ch, start, length);
String str = new String(ch, start, length);
if ("name".equals(tag)) {
music.setDisplayName(str);
} else if ("singer".equals(tag)) {
music.setArtist(str);
} else if ("albumpic".equals(tag)) {
music.setAlbumPath(str);
} else if ("musicpath".equals(tag)) {
music.setData(str);
} else if ("time".equals(tag)) {
music.setDuration(Long.parseLong(str));
}
}
}
}
- sax xml
- xml sax
- Study SAX《SAX解析XML》
- xml sax 遍历xml
- [XML] SAX解析XML
- 【XML】SAX解析XML
- SAX 读取xml文件
- 使用SAX解析XML
- 解析xml之--SAX
- SAX解析XML
- SAX解析XML
- xml文件解析-SAX
- 解析xml之--SAX
- XML基础教程:掌握SAX
- 解析xml之--SAX
- 使用SAX解析XML
- XML学习《SAX解析》
- SAX解析XML例子
- Fast CRM 中小企业首选客户关系管理软件
- java基础之IO
- 在cygwin中成功编译xlslib库
- AJAX学习笔记
- vi(vim)入门简明实例教程---总览全局 快速入门
- xml sax
- C++基础FAQ [1]
- ubuntu命令行模式与图形界面模式的切换
- java基础之异常处理
- spring配置文件参考
- 对String 的总结
- <cf>A. Exams
- 6个简易习惯,让你成为行动上的巨人
- RTC