zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    前端面试题
    Less 中的嵌套规则与 & 符号的使用
    组件的生命周期
    222
    221
    twemproxy代理memcache(3)
    memcache数据迁移与解决方案(2)
    mencache的原理与应用(1)
    yield推荐,理解协程的最佳入口
    上下文管理器的实现
  • 原文地址:https://www.cnblogs.com/zhaoyanjun/p/4572233.html
Copyright © 2011-2022 走看看