`

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.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.20.jar

    xstream-1.4.20.jar

    xstream-1.4.jar

    xstream jar包,java对象转xml以及xml转java对象,操作很简单。

    XStream XML与Json转换

    XStream在运行时使用Java反射机制对要进行序列化的对象树的结构进行探索,并不需要对对象作出修改。XStream可以序列化内部字段,包括私private和final字段,并且支持非公开类以及内部类。 在缺省情况下,XStream不...

    xstream1.22.jar

    xstream 1.2 ,xstream 1.2.2.jar xstream 1.2 ,xstream 1.2.2.jar

    xstream-1.4.2.jar

    xstream-1.4.2.jar,官网上也有,由于本人分没了,希望有分的同志给点分。如果你也每份,请上官网下,地址:http://xstream.codehaus.org/download.html

    XStream解析XML实例

    XStream解析XML实例

    XStream DOC

    XStream DOC

    xstream-1.4.2

    xstream-1.4.2

    xstream-1.4.5.jar

    xstream xstream-1.4.5.jar

    xstream相关的jar包

    xstream所需要的jar包,xstream-1.4.9.jar、dom4j-1.6.1.jar、xpp3_min-1.1.4c.jar等

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

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

    解决XStream注解同名冲突

    com.thoughtworks.xstream.converters.ConversionException: No field 'null' found in class '.....(注解的类路径)' ---- Debugging information ---- message : No field 'null' found in class '.....' cause...

    xstream-1.3.1-sae-liufeng

    修改XStream源码,解决SAE不支持XStream的问题。

    powermock-classloading-xstream-1.4.7

    powermock-classloading-xstream-1.4.7powermock-classloading-xstream-1.4.7powermock-classloading-xstream-1.4.7powermock-classloading-xstream-1.4.7powermock-classloading-xstream-1.4.7powermock-class...

    Xstream.Core 源代码 C#

    Xstream.Core 源代码 C# Xstream.Core 源代码 C#

Global site tag (gtag.js) - Google Analytics