`
xieyt
  • 浏览: 1605 次
  • 性别: Icon_minigender_1
  • 来自: 福州
最近访客 更多访客>>
社区版块
存档分类
最新评论

Sax 解析xml 编码 格式为gb2312

 
阅读更多
 

   转自:http://lovezhou.iteye.com/blog/839990

Android 支持三种解析xml文件的方式,dom,sax,pull,我用的比较多的是sax解析,但发现sax默认只解析utf-8编码的xml文件;
通过网上搜索,最终找到了解决办法:
1.就是先判断URL资源上的xml文件的编码方式
2.然后通过InputStreamReader 设定好编码,然后将InputStreamReader通过InputSource的构造方法传给InputSource
3.sax解析InputSource资源时,就会按照指定的编码方式解析

1.判断url资源上的xml文件编码方式,需要通过第三方的jar文件
//得到探测器代理对象
CodepageDetectorProxy detector =   CodepageDetectorProxy.getInstance();
//向代理对象添加探测器
detector.add(JChardetFacade.getInstance());  
//得到编码字符集对象
Charset charset =  detector.detectCodepage(url);
//得到编码名称
String encodingName = charset.name();

2.通过InputStreamReader对象设定解析时的编码
InputSource inputSource=null;
InputStream stream = null;

  //如果是GBK编码
   if("GBK".equals(EncodingUtil.checkEncoding(url))){
    stream = url.openStream();
    //通过InputStreamReader设定编码方式
    InputStreamReader streamReader = new InputStreamReader(stream,"GBK");
    inputSource = new InputSource(streamReader);
   }else{
    //是utf-8编码
    inputSource = new InputSource(url.openStream());
    inputSource.setEncoding("UTF-8");
   }

3.使用sax解析InputSource对象
ChinaNews chinaNews = SAXRssService.readRssXml(inputSource);
newsItems=chinaNews.getNewsItems();
分享到:
评论

相关推荐

    SAX解析XML文件实例

    SAX解析XML文件的实例。一个项目同时用dom解析和sax解析xml文件貌似会报错,项目框架建一直是用sax和dom4j解析xml文件的。当我用dom解析xml文件。导入包后就报错识别不了xml文件的编码格式。于是做了一个sax解析xml...

    android 三种方式解析XML(DOM,Pull,Sax) 带文件编码识别

    本篇文章将深入探讨三种在Android中解析XML的方法:DOM(文档对象模型)、Pull(拉取解析器)和SAX(简单API for XML),并且会特别强调如何识别文件编码。 首先,DOM解析是将整个XML文件加载到内存中形成一个树形...

    Android之SAX解析XML

    SAX解析器为Android开发者提供了一种高效且内存友好的方式来解析XML数据,尤其适用于处理大量或复杂的数据。在`SaxTest`项目中,你可以找到一个具体的示例,演示如何将这些概念整合到实际的Android应用中。

    anroid SAX解析xml文件及实例

    以下是对SAX解析XML在Android中的详细解释以及实例代码分析。 **一、SAX解析XML原理** 1. **事件驱动**:SAX解析器在读取XML文档时,会调用预先定义好的处理器接口(如`DefaultHandler`)中的方法,如`...

    使用SAX解析XML文件个人总结

    ### 使用SAX解析XML文件详解 #### 一、XML与SAX简介 XML(Extensible Markup Language,可扩展标记语言)是一种用于标记电子文件使其具有结构性的标记语言,旨在克服HTML的一些不足,使得数据能够被不同系统间共享...

    android中使用sax解析xml

    本文将详细介绍如何在Android中使用SAX解析XML。 首先,我们需要了解SAX解析的基本流程。SAX解析XML的过程是基于事件的,当解析器读取XML文档时,会触发一系列的事件,如开始文档、结束文档、开始元素、结束元素等...

    sax9.0解析XML

    SAX(Simple API for XML)是一种轻量级的解析XML的API,它是Java平台上的一个标准接口,用于处理XML文档。SAX9.0是该API的一个特定版本,提供了更高效、更灵活的XML解析能力。这个版本可能包含了对XML 1.0和1.1规范...

    易语言 xml解析 易语言 xml解析 教程 带源码

    这些解析器可以帮助我们解析XML数据,将其转换为易语言可以处理的数据结构,如字节流、字符串或对象。常见的解析方式有DOM(Document Object Model)和SAX(Simple API for XML)两种。DOM解析器会将整个XML文档加载...

    JDK自带xml解析器dom+sax

    3. SAX解析XML: SAX解析器采用事件驱动的方式,逐行读取XML文档,当遇到元素、属性等结构时触发相应的事件回调。这种方式适合处理大型XML文件,因为它不会将整个文档加载到内存中。在SAX解析过程中,需要创建一个...

    PB 解析xml格式串

    在“PB解析xml格式串”的主题中,我们主要关注如何将XML格式的数据转换为Protocol Buffers的二进制格式,以便于高效地存储和传输。以下是一些相关的知识点: 1. **Protocol Buffers介绍**:PB是一种高效的序列化...

    Android 解析gbk、gb2312编码的xml文件

    在Android开发中,有时我们需要处理来自不同编码格式的XML文件,比如GBK或GB2312,这些是中国早期广泛使用的简体中文编码标准。本文将深入探讨如何在Android环境中解析这些非UTF-8编码的XML文件,以确保数据正确无误...

    XML的四种解析器(dom,sax,jdom,dom4j)原理及性能比较,超详细

    XML 解析器是指将 XML 文档转换为计算机可以理解的格式的软件组件。常见的 XML 解析器有 DOM、SAX、JDOM 和 DOM4J 等。每种解析器都有其特点和优缺,选择合适的解析器对应用程序的性能和开发效率有很大影响。 1. ...

    行业文档-设计装置-基于android平台SAX解析XML错误问题的方法.zip

    综上所述,理解和解决基于Android平台的SAX解析XML错误问题需要对XML规范、Android的文件系统、内存管理以及多线程编程有深入理解。通过上述方法,开发者可以更有效地处理XML解析中的各种挑战,提升应用的稳定性和...

    Android创建与解析XML(三)——详解Sax方式

    本文将深入讲解如何在Android中使用SAX解析XML以及如何通过SAX方式创建XML。 **1. SAX解析XML** SAX解析XML的基本流程是:创建SAXParserFactory,通过该工厂实例化SAXParser,然后设置事件处理器(ContentHandler...

    xml.rar_XML c语言_c语言 xml_resolver_xml解析 c_解析xml

    在C语言中,XML解析库如libxml2提供了DOM和SAX解析的功能,但在“xml.rar”中,开发者可能是基于C语言实现了一个轻量级的解析器,专为处理小到中等规模的XML文件设计。这有助于避免引入大型库的依赖,同时降低了程序...

    关于解析xml的一些demo

    以下是一个简单的Java SAX解析XML的示例代码: ```java import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.Attributes; import org.xml.sax.SAXException; ...

    解析XML特殊字符方法

    例如,在Python中,可以使用`xml.sax.saxutils.escape()`函数来编码特殊字符,而在JavaScript中,可以使用`encodeURI()`或`encodeURIComponent()`函数。同样,接收XML数据后,可以通过解码函数还原这些字符。 **3. ...

    libxml2-解析xml格式文件

    这个库不仅能够解析XML(eXtensible Markup Language)格式的文件,还能生成XML文件,使得开发者在处理XML数据时有了一个高效且灵活的工具。XML作为一种通用的数据交换格式,广泛应用于网络通信、数据存储和配置文件...

    delphi解析xml文件实例

    值得注意的是,如果XML文件较大或者结构复杂,可能需要使用更高级的解析策略,例如错误处理、XPath查询或SAX解析。但基本的DOM解析方法已经能够处理大部分常见需求。 在实际应用中,可能还需要关注XML编码、命名...

    DELPHI 解析XML的小程序

    DELPHI解析XML小程序是一种基于DELPHI 7开发的应用,用于处理XML(eXtensible Markup Language)数据。XML是一种结构化数据语言,广泛应用于数据交换、配置存储以及网络通信等领域。在DELPHI中,我们可以利用其强大...

Global site tag (gtag.js) - Google Analytics