android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件
簡介
XStream 是一個開源項(xiàng)目,一套簡單實(shí)用的類庫,用于序列化對象與 XML 對象之間的相互轉(zhuǎn)換。
將 XML 文件內(nèi)容解析為一個對象或?qū)⒁粋€對象序列化為 XML 文件。
?
1、下載工具 xstream
? 下載最新版本地址: https://nexus.codehaus.org/content/repositories/releases/com/thoughtworks/xstream/
??下載完成后 把jar包導(dǎo)入到自己的android項(xiàng)目中?
?
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) 設(shè)置別名
根節(jié)點(diǎn)設(shè)置別名:參數(shù)一:別名 ; 參數(shù)二:當(dāng)前的類名
xstream.alias( "blog" , Product.class ) ;
?
屬性節(jié)點(diǎn)設(shè)置別名 : 參數(shù)一:別名?;? 參數(shù)二:當(dāng)前的類名?; 參數(shù)三:原來的節(jié)點(diǎn)名
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、實(shí)體
?
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、實(shí)現(xiàn)代碼
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 {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView( R.layout.activity_main );//得到資源中的數(shù)據(jù)流 String fileName = "aa.xml" ; //文件名字 try {InputStream in = getResources().getAssets().open( fileName ) ;XStream xstream = new XStream() ; xstream.alias( "product" , Product.class ); //這里的product一定要和 xml文件中的 product 保持一直,否則會報(bào)錯的. Product product = (Product) xstream.fromXML( in );System.out.println("sss " + product.getName() + product.getAge() );} catch (IOException e) {e.printStackTrace();} } }?
6、運(yùn)行結(jié)果
? ?sss jike30
?
7、項(xiàng)目下載地址
?? http://download.csdn.net/detail/yanzi2015/8797641
?
總結(jié)
以上是生活随笔為你收集整理的android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 回调函数一:基本概念
- 下一篇: android XMl 解析神奇xstr