`

xstream初读

XML 
阅读更多

  xstream 入口类:com.thoughtworks.xstream.XStream

  主要支持的解析方式:jdom,xmlpull,dom4j,jdom.

  默认的解析方式:xmlpull 包解析(该包的解析速度据说超过sax解析,J2ME解析xml会用到该包)

  刚刚查了下资料,发现原来除了熟悉的Dom(基于DOM树)解析,Sax(基于事件)解析外,前两者都需要一次性析,        还有一种就是XPP解析(XPP解析支持断点解析)。

  xstream可以解析私有的属性,不知道这点是怎么做到的?有待研读。。。。

  刚才换了一个xom,dom4j的解析方式,发现解析不出东西,应该和xmlpull的解析有关。

  在xmlpull解析中,一般使用kxml.jar,该包包含了xmlpull并对它进行了扩展,但xstream种用的是xpp3.jar。如果单单使用xmlpull.jar会报XmlPullParserException异常。

 

kxml解析的基本实现 :

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
public class XmlPullTest
{
    private static String xml = "<Student><name>张三</name><age>23</age></Student>";
    
    public static void main(String args[])
        
        throws XmlPullParserException, IOException
    {
        
        ByteArrayInputStream bin = new ByteArrayInputStream(xml.getBytes());
        InputStreamReader in = new InputStreamReader(bin);
        XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser();
        parser.setInput(in);
        
        int eventType = parser.getEventType();
        // 结束文档解析
        while (eventType != XmlPullParser.END_DOCUMENT)
        {
            if (eventType == XmlPullParser.START_DOCUMENT)
            {
                System.out.println("Start document:");
            }
            else if (eventType == XmlPullParser.END_DOCUMENT)
            {
                System.out.println("End document");
            }
            else if (eventType == XmlPullParser.START_TAG)
            {
                System.out.println(" start tag " + parser.getName());
                System.out.println(" Start Count: " + parser.getAttributeCount());
                int size = parser.getAttributeCount();
                for (int i = 0; i < size; i++)
                {
                    System.out.println(" attrName " + parser.getAttributeName(i));
                    System.out.println(" attrValue " + parser.getAttributeValue(i));
                }
                
            }
            else if (eventType == XmlPullParser.END_TAG)
            {
                System.out.println(" end tag " + parser.getName());
            }
            else if (eventType == XmlPullParser.TEXT)
            {
                System.out.println(" test: " + parser.getText());
            }
            eventType = parser.next();
        }
    }
}
分享到:
评论

相关推荐

    最齐全的xstream1.4.8.jar

    最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar ...

    xstream-1.4.15.jar

    XStream 反序列化漏洞(CVE-2020-26258 & 26259),修复jar包 xstream-1.4.15.jar Xstream 是 Java 类库,用来将对象序列化成 XML (JSON) 或反序列化为对象。XStream 是一款开源软件,允许在 BSD 许可证的许可下分发...

    xstream最新版 - xstream-1.4.18.jar

    xstream最新版jar包

    xstream-1.4.2.jar

    《XStream详解与应用》 XStream是一款强大的Java库,用于将对象序列化为XML,同时也能从XML数据中反序列化回对象。在标题"xstream-1.4.2.jar"中,我们看到的是XStream的一个特定版本——1.4.2。这个版本包含了...

    xstream1.4.15.JAR

    XStream 是一个流行的 Java 库,用于将对象序列化为 XML 和从 XML 反序列化回对象。这个库广泛应用于各种 Java 应用程序,尤其是那些需要在网络间传输或存储对象数据的情况。在标题提到的 "xstream1.4.15.JAR" 文件...

    xStream完整Jar包

    **XStream 概述** XStream 是一个 Java 库,用于将对象序列化为 XML,以及从 XML 反序列化回对象。它提供了一种简单而直观的方式来处理 XML 数据,使得 XML 文档与 Java 对象之间的转换变得轻而易举。这个“xStream...

    xstream-1.4.5.jar

    xstream xstream-1.4.5.jar

    com.thoughtworks.xstream.XStream操作XML和java对象的一些用法

    XStream库提供了一个简单、直观的方式来实现这种转换,使得XML序列化和反序列化变得非常方便。本篇将详细介绍XStream如何处理XML与Java对象的相互转换,以及如何处理List、Map等集合类型的数据。 首先,XStream是一...

    xstream-1.3.1.zip

    《XStream 1.3.1:Java对象到XML的高效转换工具》 XStream是一款强大的Java库,它能够将Java对象序列化为XML,并能从XML反序列化回Java对象。这个“xstream-1.3.1.zip”文件包含了一个名为“xstream-1.3.1.jar”的...

    XStream简单应用实例

    5. **XML格式**: 输出的XML格式清晰易读,适合人类阅读和调试。 **XStream的基本使用** 1. **添加依赖**: 首先,你需要在项目中引入XStream的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```...

    xstream相关的jar包

    XStream是一款强大的Java库,用于将Java对象序列化为XML,反之亦然。这个库的主要优点在于其简单易用的API和对复杂对象图的处理能力。在标题中提到的"Xstream相关的jar包",是指为了使用XStream库,需要引入的依赖...

    xstream解析依赖包

    《XStream解析依赖包详解》 在Java开发中,数据序列化是一个不可或缺的环节,它使得对象的状态可以被保存和恢复。XStream是一款强大的Java库,用于将Java对象转换为XML,反之亦然,极大地简化了序列化和反序列化的...

    xstream学习文档及实例

    XStream 是一个强大的 Java 库,它允许程序员将 Java 对象序列化为 XML,反之亦然。这个库因其简单易用、灵活性高以及性能优异而备受赞誉。在本学习文档中,我们将深入探讨 XStream 的核心概念、用法以及如何在实际...

    Java用xStream拼接xml

    当需要将数据转换为XML格式以便于传输或处理时,工具如xStream就显得尤为重要。Java中的xStream库提供了一个简单易用的方式来将Java对象序列化为XML,反之亦然,即反序列化XML回Java对象。 **xStream简介** xStream...

    xstream-1.4.20.jar

    xstream-1.4.20.jar

    XStream解析各种数据格式

    XStream 支持使用注解来指定字段映射、转换器等,使得代码更加清晰易读。 5. **安全性设置** XStream 默认只允许序列化安全的类。可以通过设置允许或禁止特定类的序列化来增强安全性。 #### 五、总结 XStream...

    xstream-1.4.8最齐全的jar包

    XStream是一款强大的Java库,主要用于将Java对象序列化为XML,以及将XML反序列化回Java对象。在Java开发中,这种能力对于数据持久化、网络传输或配置存储等场景非常有用。标题中的"xstream-1.4.8最齐全的jar包"表明...

    xstream-1.4.11-API文档-中文版.zip

    赠送jar包:xstream-1.4.11.jar; 赠送原API文档:xstream-1.4.11-javadoc.jar; 赠送源代码:xstream-1.4.11-sources.jar; 赠送Maven依赖信息文件:xstream-1.4.11.pom; 包含翻译后的API文档:xstream-1.4.11-...

    xstream-1.4.19.jar

    xstream-1.4.19.jar

    xstream-1.4-API

    **XStream 1.4 API 深度解析** XStream 是一个强大的 Java 库,它的主要功能是将 Java 对象序列化为 XML,并能够从 XML 数据中反序列化回原来的对象。这个库的设计目标是提供简单易用的 API,同时保持高性能和安全...

Global site tag (gtag.js) - Google Analytics