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 ...
XStream 反序列化漏洞(CVE-2020-26258 & 26259),修复jar包 xstream-1.4.15.jar Xstream 是 Java 类库,用来将对象序列化成 XML (JSON) 或反序列化为对象。XStream 是一款开源软件,允许在 BSD 许可证的许可下分发...
xstream最新版jar包
赠送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.20.jar
xstream jar包,java对象转xml以及xml转java对象,操作很简单。
XStream在运行时使用Java反射机制对要进行序列化的对象树的结构进行探索,并不需要对对象作出修改。XStream可以序列化内部字段,包括私private和final字段,并且支持非公开类以及内部类。 在缺省情况下,XStream不...
xstream 1.2 ,xstream 1.2.2.jar xstream 1.2 ,xstream 1.2.2.jar
xstream-1.4.2.jar,官网上也有,由于本人分没了,希望有分的同志给点分。如果你也每份,请上官网下,地址:http://xstream.codehaus.org/download.html
XStream解析XML实例
XStream DOC
xstream-1.4.2
xstream xstream-1.4.5.jar
xstream所需要的jar包,xstream-1.4.9.jar、dom4j-1.6.1.jar、xpp3_min-1.1.4c.jar等
赠送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-...
com.thoughtworks.xstream.converters.ConversionException: No field 'null' found in class '.....(注解的类路径)' ---- Debugging information ---- message : No field 'null' found in class '.....' cause...
修改XStream源码,解决SAE不支持XStream的问题。
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#