国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

Android:序列化XML數-據

2019-11-02 15:08:04
字體:
來源:轉載
供稿:網友

 什么是XML?

  首先我們先了解一下什么是XML。XML,可擴展標記語言 (Extensible Markup Language) ,用于標記電子文件使其具有結構性的標記語言,可以用來標記數據、定義數據類型,是一種允許用戶對自己的標記語言進行定義的源語言,這是百度百科的解釋。而XML是一種在Internet中傳輸數據的常見格式,它與HTML一樣,都是SGML(標準通用標記語言),無論你是需要通過Internet訪問數據,或者發送數據給Web服務,都可能需要用到XML的知識。恰恰Android應用程序需要和網絡交互,否則只是一款單機的無互動的應用程序,所以很可能在Android應用程序開發的過程中使用到XML。

  由于XML的擴展性強,致使它需要有穩定的基礎規則來支持擴展,該語法規則需要注意的是:

開始和結束標簽匹配。 嵌套標簽不能相互嵌套。 區分大小寫。

XML序列化

  當獲取到一段數據后,如果需要把它序列化成XML的格式,通常有兩種辦法:

拼接字符串的形式序列化一個XML數據。 使用XmlSerializer類序列化一個XML數據。

  使用拼接字符串的方式很簡單,就是個體力活,把需要序列化的對象,依照一定的格式序列化即可。下面通過一個示例講解來演示如何拼接字符串,在示例中模擬聯系人數據,然后對其進行序列化成XML,最后保存在SD卡上。

 1     private void backupToContact1(){ 2         StringBuilder sbuilder=new StringBuilder(); 3         // 設置XML的數據頭 4         sbuilder.append("<?xml version="1.0" encoding="utf-8"?>"); 5         sbuilder.append("<contacts>"); 6         // 遍歷聯系人信息 7         for(Contact contact:Contacts){ 8             if(contact!=null){ 9                 sbuilder.append("<contact id='"+contact.getId()+"'>");10                 sbuilder.append("<name>");11                 sbuilder.append(contact.getName());12                 sbuilder.append("</name>");13                 14                 sbuilder.append("<number>");15                 sbuilder.append(contact.getNumber());16                 sbuilder.append("</number>");17                 18                 sbuilder.append("<address>");19                 sbuilder.append(contact.getAddress());20                 sbuilder.append("</address>");21                 22                 sbuilder.append("</contact>");23             }24         }            25         sbuilder.append("</contacts>");26         try {27             // 在SD卡上創建一個xml文件28             File file=new File(Environment.getExternalStorageDirectory(),"backup1.xml");29             FileOutputStream fos=new FileOutputStream(file);30             // 把序列化的數據寫入到XML文件中31             fos.write(sbuilder.toString().getBytes());32             fos.close();33             Toast.makeText(MainActivity.this, "備份成功", 0).show();34         } catch (IOException e) {35             Toast.makeText(MainActivity.this, "備份失敗", 0).show();36             e.printStackTrace();37         }38     }

  執行完之后,可以把SD卡上的XML文件導出到電腦上,查看其內容。

  對于拼接字符串而言,可以看出,很容易出錯,尤其是每個標簽內如果還存在屬性值就更需要細心了。而且如果其內容存在特殊的符號,如“<、>”等,就會導致XML序列化后的XML文件出錯,而使用XmlSerializer來序列化XML文件就不存在這些問題。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 广西| 镇原县| 固原市| 曲松县| 西和县| 新田县| 巴彦县| 从化市| 舒城县| 湖南省| 固镇县| 丹江口市| 五指山市| 宜宾县| 临泽县| 毕节市| 利川市| 临邑县| 松原市| 子长县| 桦川县| 泾川县| 凤山市| 万载县| 开江县| 潼关县| 建湖县| 治县。| 巴东县| 洪泽县| 静安区| 靖州| 双流县| 苍山县| 灵璧县| 沁源县| 凭祥市| 镇原县| 石河子市| 武邑县| 石林|