Android读写XML(下)——创建XML文档

在前面的2篇文章 Android读写XML(上)—— package说明 、 Android读写XML(中)—— SAX 中想必大家对XML文件读取的方法已经比较熟悉了,在这里我们就不多说了,直接说明如何将信息写成XML文件,首先介绍Andoid SDK中的相关类。
类  说明 
XmlSerializer  Define an interface to serialziation of XML Infoset.定义一个接口来实现XML信息的串行化。
什么是串行化?
对象的串型化,也有叫做对象的序列话,并不只是简单的把对象保存在存储器上,它可以使我们在流中传输对象,使对象变的可以像基本数据一样传递。
下面,我们就直接来看个具体的例子来说明,如何使用XmlSerializer。
 
  1. private String writeXml(){  
  2. XmlSerializer serializer = Xml.newSerializer();  
  3. StringWriter writer = new StringWriter();  
  4. try{  
  5. serializer.setOutput(writer);  
  6.  
  7. // <?xml version=”1.0″ encoding=”UTF-8″ standalone=”yes”?>  
  8. serializer.startDocument(”UTF-8″,true);  
  9.  
  10. // <blog number=”1″>  
  11. serializer.startTag(”",”blog”);  
  12. serializer.attribute(”",”number”,String.valueOf(1));  
  13.  
  14. //<message data=”2009-09-23″>  
  15. serializer.startTag(”",”message”);  
  16. serializer.attribute(”",”date”,”2009-09-23″);  
  17.  
  18. // <title>Android XML</title>  
  19. serializer.startTag(”",”title”);  
  20. serializer.text(”Android XML”);  
  21. serializer.endTag(”",”title”);  
  22.  
  23. // <url>http://www.moandroid.com/?p=508 </url>  
  24. serializer.startTag(”",”url”);  
  25. serializer.text(”http://www.moandroid.com/?p=508″);  
  26. serializer.endTag(”",”url”);  
  27.  
  28. //</message>  
  29. serializer.endTag(”",”message”);  
  30. // </blog>  
  31. serializer.endTag(”",”blog”);  
  32. serializer.endDocument();  
  33. return writer.toString();  
  34. }  
  35. catch(Exception e)  
  36. {  
  37. throw new RuntimeException(e);  
  38. }  
  39. }  
  40.  
 
我们先将writeXml()产生的字符串输出 ,看是否是按照我们设计的那样,使用Log.v(“XML”, writeXml())输出调试信息。运行程序,在DDMS中查看程序输出的调试信息,如何查看调试信息请阅读Android DDMS如何使用? 
输出的字符串如下:
 
  1. <?xml version=”1.0″ encoding=”UTF-8″ standalone=”yes”?> 
  2. <blog number=”1″> 
  3. <message data=”2009-09-23″> 
  4. <title>Android XML</title> 
  5. <url>http://www.moandroid.com/?p=508</url> 
  6. </message> 
  7. </blog> 
看了运行的结果,对于上面代码的功能,估计大家就明白了,不再这里详细解析。
下面,进一步将字符串写入文件 ,代码如下:
  1. public boolean Write(String path,String txt)  
  2. {  
  3. try 
  4. {  
  5. OutputStream os = openFileOutput(path,MODE_PRIVATE);  
  6. OutputStreamWriter osw=new OutputStreamWriter(os);  
  7. osw.write(txt);  
  8. osw.close();  
  9. os.close();  
  10. }  
  11. catch(FileNotFoundException e)  
  12. {  
  13. return false;  
  14. }  
  15. catch(IOException e)  
  16. {  
  17. return false;  
  18. }  
  19. return true;  
  20. }  
  21. }  

在onCreate()中增加如下代码:Write(”blog.xml”,writeXml())。运行程序,打开DDMS查看写入的XML文档,文件存放在data/data/{package}/files文件夹下,如下:
 

还可以将这个文件从File Explorer中导出到电脑中查看XML文档的具体内容,与输出的字符串完全一样。
总结说明
XML文件的写入就完成了,想必大家对串行化也有应该有一些了解,具体的需要引用那些package请大家到Android SDK去仔细查看吧。

猜你喜欢

转载自huaonline.iteye.com/blog/2207031