简介

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 XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件相关推荐

  1. android XMl 解析神奇xstream 六: 把集合list 转化为 XML文档

    前言:对xstream不理解的请看: android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 android XMl 解析神奇xs ...

  2. android XMl 解析神奇xstream 五: 把复杂对象转换成 xml ,并写入SD卡中的xml文件

    前言:对xstream不理解的请看: android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 android XMl 解析神奇xs ...

  3. android XMl 解析神奇xstream 四: 将复杂的xml文件解析为对象

    前言:对xstream不理解的请看: android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 android XMl 解析神奇xs ...

  4. android XMl 解析神奇xstream 二: 把对象转换成xml

    前言:对xstream不理解的请看:android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 1.Javabeen 代码 packa ...

  5. android layout文件夹下新建子文件夹 及解决文件夹爆红

    开发页面时xml文件都是放在layout下面,当项目比较大 页面比较多时这样是不是就比较混乱,于是乎我们要新建子文件夹.步骤如下: 1.将项目以project目录打开,右键单击layout文件夹,选择 ...

  6. Android 读取手机文件夹向指定文件夹下存放

    昨天项目需要向指定的文件夹下保存图片,需要使用文件管理器去选择指定的文件夹,当然最后由于逻辑太奇葩(不能选择文件夹,只能选择文件夹下的某一个文件)被否定了,改为自己读取手机存储的文件夹,并且可以创建. ...

  7. xml遍历文件夹vector_怎么统计指定文件夹下含有.xml格式的文件数目

    如何统计指定文件夹下含有.xml格式的文件数目?如题 ------解决思路----------------------Directory.GetFiles(@"路径", " ...

  8. 借助Android Studio生成图标(图片)drawable文件夹下的xml文件

    目录 一.准备图标或者图片 二.AS新建Vector Asset 如标题所示,借助Android Studio生成图标(图片)的xml文件,存放在drawable文件夹下. 一.准备图标或者图片 本人 ...

  9. android 7 创建文件夹,Android 在 res/layout 文件夹 下创建一个 子文件夹实例

    Android 资源文件夹 Layout 文件夹 Layout 文件是存放Android的布局文件的资源文件夹,但是如果你想要在里面创建子文件夹,你会发现xml文件报错. 如何在Layout文件夹下方 ...

最新文章

  1. 基于Kafka实现分布式事件驱动
  2. 关于idea中新建web项目 webapp文件夹没有小蓝点 ,启动服务,访问不到解决方案
  3. 为什么用C而不用C++
  4. cac会议投稿难度大吗_发表 SCI 论文有多难?
  5. Windows7IIS7.5部署Discuz全攻略
  6. 《剑指offer》从尾到头打印链表
  7. TensorFlow:实战Google深度学习框架(六)图像数据处理
  8. eclipse无法打开.ftl文件或打开.ftl没提示
  9. 11.1-全栈Java笔记:多线程技术的基本概念
  10. 显示器分辨率一直跳_2020如何选择适合自己的显示器?小白选购电脑显示器必看!...
  11. 力扣 746 使用最小化花费爬楼梯
  12. [转载] Python dict.keys方法
  13. css 伪类大全,CSS 伪类
  14. 光伏发电最大功率点跟踪 (mppt) matlab/simulink仿真程序 恒定电压法 扰动观察法(po) 电导增量法(inc)模糊控制法(fuzzy)多种方法
  15. 2022最新最全升级版【精品工具】用Appuploader发布上传iOS APP上架流程简单快速
  16. 浅析View的事件分发机制
  17. iis10 asp 如何连接mdb_看我如何恢复被MaMoCrypt勒索软件加密的数据
  18. Flink单机部署,slots为0,TaskExecutor akka.tcp://xxx has no more allocated slots for job
  19. 苹果HomeKit生态深度解析,在智能家居领域后发制人?
  20. ffmpeg 一条命令实现 圆形画中画效果

热门文章

  1. Android自定义动态壁纸,Android自定义动态壁纸开发详解
  2. android点击弹出滑动条,IndicatorSeekBar Android自定义SeekBar,滑动时弹出气泡指示器显示进度...
  3. Java在开发中应注意的问题_Java设计编程应该注意的几个问题
  4. 时间序列分析模型:ARIMA模型和SARIMAX算法
  5. 前端生成Excel 表格
  6. 深度学习开发者的AI Party来了!WAVE SUMMIT+2021与你相约双十二
  7. SIGIR 2020 | 相似问题判定的二次匹配模型
  8. 切分也重要:基于多粒度语言单元切分的BERT模型
  9. 积分梯度:一种新颖的神经网络可视化方法
  10. 今晚直播 | 平安人寿资深算法工程师姚晓远:对话生成模型的探析与创新