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


前言:对xstream不理解的请看:

android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件

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

android XMl 解析神奇xstream 三: 把复杂对象转换成 xml

 

1、文件准备

把一个预先写好的xml文件放在android项目目录的 asset 文件夹。

文件内容为:

<blog>
  <age>30</age>
  <name>jhon</name>
  <person>
    <pAge>36</pAge>
    <pName>saliy</pName>
  </person>
</blog>

 

 

2、javaBeen

package com.android10; public class Person { String pName ; String pAge ; public String getpName() { return pName; } public void setpName(String pName) { this.pName = pName; } public String getpAge() { return pAge; } public void setpAge(String pAge) { this.pAge = pAge; } }

 

package com.android10; public class Product { private String name ; private String age ; private Person person ; 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; } public Person getPerson() { return person; } public void setPerson(Person person) { this.person = person; } }


3、主要方法

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() ; //这个blog标识一定要和Xml中的保持一直,否则会报错  
            xstream.alias( "blog" , Product.class ); Product product = (Product) xstream.fromXML( in ); System.out.println("sss " + product.getName() + product.getAge() ); } catch (IOException e) { e.printStackTrace(); } } }


4、运行结果

 product jhon30 person  saliy36

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM