android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件
2015-06-11 21:47
549 查看
简介
XStream 是一个开源项目,一套简单实用的类库,用于序列化对象与 XML 对象之间的相互转换。
将 XML 文件内容解析为一个对象或将一个对象序列化为 XML 文件。
1、下载工具 xstream
下载最新版本地址: https://nexus.codehaus.org/content/repositories/releases/com/thoughtworks/xstream/
下载完成后 把jar包导入到自己的android项目中
2、 常用的方法:
(1)fromXML()方法 返回值是 Object
xStream.fromXML( File file) ;
xStream.fromXML( InputStream in) ;
xStream.fromXML( Reader reader ) ;
xStream.fromXML( String xml ) ;
xStream.fromXML( URL url ) ;
xStream.fromXML( File file , Object root ) ;
xStream.fromXML( InputStream in , Object root ) ;
xStream.fromXML( Reader reader , Object root ) ;
xStream.fromXML( String xml , Object root ) ;
xStream.fromXML( URL url , Object root ) ;
(2)toXML()方法
xStream.toXML( Object object ) ; //返回值String
xStream.toXML( Object object , OutputStream out ); //返回值void
xStream.toXML( Object object , Writer writer ); //返回值void
(3) 设置别名
根节点设置别名:参数一:别名 ; 参数二:当前的类名
xstream.alias( "blog" , Product.class ) ;
属性节点设置别名 : 参数一:别名 ; 参数二:当前的类名 ; 参数三:原来的节点名
xstream.aliasField( "blogName" , Person.class , "pName" ) ;
(4)XML字符串格式化
3、asset 文件夹 下的 aa.xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<product>
<name>jike</name>
<age>30</age>
</product>
4、实体
5、实现代码
6、运行结果
sss jike30
7、项目下载地址
http://download.csdn.net/detail/yanzi2015/8797641
XStream 是一个开源项目,一套简单实用的类库,用于序列化对象与 XML 对象之间的相互转换。
将 XML 文件内容解析为一个对象或将一个对象序列化为 XML 文件。
1、下载工具 xstream
下载最新版本地址: https://nexus.codehaus.org/content/repositories/releases/com/thoughtworks/xstream/
下载完成后 把jar包导入到自己的android项目中
2、 常用的方法:
(1)fromXML()方法 返回值是 Object
xStream.fromXML( File file) ;
xStream.fromXML( InputStream in) ;
xStream.fromXML( Reader reader ) ;
xStream.fromXML( String xml ) ;
xStream.fromXML( URL url ) ;
xStream.fromXML( File file , Object root ) ;
xStream.fromXML( InputStream in , Object root ) ;
xStream.fromXML( Reader reader , Object root ) ;
xStream.fromXML( String xml , Object root ) ;
xStream.fromXML( URL url , Object root ) ;
(2)toXML()方法
xStream.toXML( Object object ) ; //返回值String
xStream.toXML( Object object , OutputStream out ); //返回值void
xStream.toXML( Object object , Writer writer ); //返回值void
(3) 设置别名
根节点设置别名:参数一:别名 ; 参数二:当前的类名
xstream.alias( "blog" , Product.class ) ;
属性节点设置别名 : 参数一:别名 ; 参数二:当前的类名 ; 参数三:原来的节点名
xstream.aliasField( "blogName" , Person.class , "pName" ) ;
(4)XML字符串格式化
/** * 格式化XML字符串 * @param xml * @return */ public static String formatXml(String xml){ try{ Transformer serializer= SAXTransformerFactory.newInstance().newTransformer(); serializer.setOutputProperty(OutputKeys.INDENT, "yes"); serializer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2"); Source xmlSource=new SAXSource(new InputSource(new ByteArrayInputStream(xml.getBytes()))); StreamResult res = new StreamResult(new ByteArrayOutputStream()); serializer.transform(xmlSource, res); return new String(((ByteArrayOutputStream)res.getOutputStream()).toByteArray()); }catch(Exception e){ return xml; } }
3、asset 文件夹 下的 aa.xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<product>
<name>jike</name>
<age>30</age>
</product>
4、实体
package com.android10; public class Product { private String name ; private String age ; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } }
5、实现代码
package com.android10; import java.io.IOException; import java.io.InputStream; import android.app.Activity; import android.os.Bundle; import com.thoughtworks.xstream.XStream; public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView( R.layout.activity_main ); //得到资源中的数据流 String fileName = "aa.xml" ; //文件名字 try { InputStream in = getResources().getAssets().open( fileName ) ; XStream xstream = new XStream() ; xstream.alias( "product" , Product.class ); //这里的product一定要和 xml文件中的 product 保持一直,否则会报错的. Product product = (Product) xstream.fromXML( in ); System.out.println("sss " + product.getName() + product.getAge() ); } catch (IOException e) { e.printStackTrace(); } } }
6、运行结果
sss jike30
7、项目下载地址
http://download.csdn.net/detail/yanzi2015/8797641
相关文章推荐
- android之关于屏幕适配问题
- android学习笔记
- Android---Activity 生命周期(二)pause Activity && resume Activity
- Android之NDK开发问题解决办法
- Android之NDK开发Androd.mk
- 百度地图 Android SDK - 新的版本号(v3.2.0)正式上线
- Android 配置环境变量
- Android Volley框架的使用(二)
- Android之NDK开发
- android怎么连接sqlite数据库?
- Android之AES加密
- Android自由选择TextView的文字
- Android用观察者模式代替广播通知刷新界面
- Android---Activity 生命周期(一)start Activity && destroy Activity
- Android内核开发:如何统计系统的启动时间
- Android内核开发:如何统计系统的启动时间
- Android实战简易教程-第十三枪(五大布局研究)
- Android Client and PHP Server
- Android开发之onClick事件的三种写法
- android Canvas 画板 和 OnTouch 事件