android xmlReader解析RSS(中文乱码解决)
2014-02-21 12:43
513 查看
原址:http://wx1985113.iteye.com/blog/1195782
XMLReader create:
Java代码
SAXParserFactory spf = SAXParserFactory.newInstance();
XMLReader xr=null;
try {
SAXParser sp = spf.newSAXParser();
xr = sp.getXMLReader();
rssHandler rh=new rssHandler();
xr.setContentHandler(rh);
xr.parse(new InputSource(new InputStreamReader(url.openStream(), "UTF-8")));
System.out.println(xr.getContentHandler().toString());
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
rssHandler create:
Java代码
private class rssHandler extends DefaultHandler{
StringBuffer src=new StringBuffer();
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
System.out.println("endElement:"+localName);
src.append("</"+localName+">");
super.endElement(uri, localName, qName);
}
@Override
public void startDocument() throws SAXException {
System.out.println("startDocument:");
super.startDocument();
}
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
System.out.println("startElement:"+localName);
src.append("<"+localName);
for(int i=0;i<attributes.getLength();i++){
src.append(" "+attributes.getLocalName(i)+"=\""+attributes.getValue(i)+"\" ");
}
src.append(">");
super.startElement(uri, localName, qName, attributes);
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
if(0!=length){
src.append(String.copyValueOf(ch,start,length));
}
super.characters(ch, start, length);
}
public String toString(){
return src.toString();
}
}
XMLReader create:
Java代码
SAXParserFactory spf = SAXParserFactory.newInstance();
XMLReader xr=null;
try {
SAXParser sp = spf.newSAXParser();
xr = sp.getXMLReader();
rssHandler rh=new rssHandler();
xr.setContentHandler(rh);
xr.parse(new InputSource(new InputStreamReader(url.openStream(), "UTF-8")));
System.out.println(xr.getContentHandler().toString());
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
SAXParserFactory spf = SAXParserFactory.newInstance(); XMLReader xr=null; try { SAXParser sp = spf.newSAXParser(); xr = sp.getXMLReader(); rssHandler rh=new rssHandler(); xr.setContentHandler(rh); xr.parse(new InputSource(new InputStreamReader(url.openStream(), "UTF-8"))); System.out.println(xr.getContentHandler().toString()); } catch (ParserConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SAXException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
rssHandler create:
Java代码
private class rssHandler extends DefaultHandler{
StringBuffer src=new StringBuffer();
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
System.out.println("endElement:"+localName);
src.append("</"+localName+">");
super.endElement(uri, localName, qName);
}
@Override
public void startDocument() throws SAXException {
System.out.println("startDocument:");
super.startDocument();
}
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
System.out.println("startElement:"+localName);
src.append("<"+localName);
for(int i=0;i<attributes.getLength();i++){
src.append(" "+attributes.getLocalName(i)+"=\""+attributes.getValue(i)+"\" ");
}
src.append(">");
super.startElement(uri, localName, qName, attributes);
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
if(0!=length){
src.append(String.copyValueOf(ch,start,length));
}
super.characters(ch, start, length);
}
public String toString(){
return src.toString();
}
}
相关文章推荐
- Android中SQLite应用详解
- Android剪贴板操作
- android 系统内置拍照功能
- Android GridView属性集合
- 编译Coco2d-x android 程序出现make: *** No rule to make target ...CCConfiguration.o'. Stop
- ubuntu配置android开发环境和编译源码遇到的一些问题
- Android NDK开发 环境搭建
- android 显示特殊符号
- 最新Android adt22.3.0和4.4 资源下载
- 借助NDK,Android与C动态链接库的相互调用
- Android解析json数据(Gson)
- 说说Android 两种为自定义组件添加属性的使用方法和区别
- Android nine-patch .9使用方法入门
- Android 游戏教程:让人物动起来
- 【android官方文档】android 屏幕适配 支持不同的屏幕
- Android 设置飞行模式,判断是否是飞行模式
- Android APK自动安装
- android的上下文菜单---context menu
- android--Notification--Flag类型
- Android多线程与Java多线程比较