2012-03-23 15 views
0

我正在爲我使用的程序製作閱讀器。信息以自定義文件類型(.BSMX)導出。當我用記事本打開文件時,它是一堆類似XML的結構標籤。我想知道如何像解析XML文件那樣解析文件,以便將數據存儲到自定義對象中以使用數據。如何解析Android中的自定義文件

編輯:繼承人文件的部分,以及如何其格式的,它不是XML和犯規都不得不

  <_MOD_>2012-03-23</_MOD_> 
      <F_E_NAME>FUggin Hiccups BIAB</F_E_NAME> 
      <F_E_MASH_VOL>896.0000000</F_E_MASH_VOL> 
      <F_E_TUN_MASS>35.2000000</F_E_TUN_MASS> 
      <F_E_BOIL_RATE_FLAG>1</F_E_BOIL_RATE_FLAG> 
      <F_E_TUN_SPECIFIC_HEAT>0.1200000</F_E_TUN_SPECIFIC_HEAT> 
      <F_E_TUN_DEADSPACE>0.0000000</F_E_TUN_DEADSPACE> 
      <F_E_TUN_ADJ_DEADSPACE>0</F_E_TUN_ADJ_DEADSPACE> 
      <F_E_CALC_BOIL>1</F_E_CALC_BOIL> 
      <F_E_BOIL_VOL>894.7200000</F_E_BOIL_VOL> 
      <F_E_BOIL_TIME>60.0000000</F_E_BOIL_TIME> 
      <F_E_OLD_EVAP_RATE>10.0000000</F_E_OLD_EVAP_RATE> 
      <F_EQUIP_39>1</F_EQUIP_39> 
      <F_E_BOIL_OFF>96.0000000</F_E_BOIL_OFF> 
      <F_E_TRUB_LOSS>128.0000000</F_E_TRUB_LOSS> 
      <F_E_COOL_PCT>4.0000000</F_E_COOL_PCT> 
      <F_E_TOP_UP_KETTLE>256.0000000</F_E_TOP_UP_KETTLE> 
      <F_E_BATCH_VOL>640.0000000</F_E_BATCH_VOL> 
      <F_E_FERMENTER_LOSS>64.0000000</F_E_FERMENTER_LOSS> 
      <F_E_TOP_UP>0.0000000</F_E_TOP_UP> 
      <F_E_EFFICIENCY>67.4000000</F_E_EFFICIENCY> 
      <F_E_HOP_UTIL>100.0000000</F_E_HOP_UTIL> 
     </F_R_EQUIPMENT> 

回答

1

由於您的文件內容與XML相似,因此最好嘗試SAXParser。 你可以用這個來製作一個自定義的ContentHandler,所以你基本上可以指定你的標籤,並且你可以自己編碼文件的解析方式。

否則,如果SAXParser不起作用(無xml文件),您必須手工解析它,或者更好地,使文件結構像一個xml文件。

+0

不幸的是我沒有對文件結構進行任何控制(不是我的程序,即時嘗試使應用程序讀取器),但我會嘗試薩克斯分析器,看看它是否會與一個非XML文件,一個XML,但如果它沒有,我會在哪裏看看如何解決它手 – DRing 2012-03-24 13:46:33

+0

所以最後得到了SAXParser設置和測試,它的工作原理,感謝您的幫助 – DRing 2012-03-24 14:22:19

0

XML代碼這將是有益的,如果你發佈的文件看起來像一個例子。

基本上,根據文件的大小,可以使用InputStream閱讀器,將文件entirley讀入字符串並使用類似.split()方法的標記拆分該字符串。之後,您可以將需要的數據存儲到數組中。