2011-08-01 82 views
0

以前在我的Android項目中,我將URL字符串(Web地址)傳遞給XMLReader進行解析。但是現在我想爲了這個目的從我的項目中傳遞XML文件。如何將XML文件傳遞給XMLReader

  1. 我應該在哪裏放置XML文件(注: - 在設備上安裝它之後,我希望更新的XML文件的內容每週的XML文件的位置應是靈活的。這
  2. 我怎樣才能檢索XML文件數據到XMLReader

上一頁(工作)

 SAXParserFactory spf = SAXParserFactory.newInstance(); 
     SAXParser sp = spf.newSAXParser(); 
     XMLReader xr = sp.getXMLReader(); 

     URL sourceUrl; 

     sourceUrl = new URL(
     "http://www.androidpeople.com/wp-content/uploads/2010/06/example.xml"); 


     XMLHandler myXMLHandler = new XMLHandler(); 
     xr.setContentHandler(myXMLHandler); 
     xr.parse(new InputSource(sourceUrl.openStream())); 

回答

4

要回答你的第二個問題,你可以從FileInputStream構造一個InputSource,類似於你對這個url的操作。我還建議設置systemId以獲得更好的錯誤報告,以防萬一需要從xml中解析相對路徑。

InputStream in = new FileInputStream(file); 
try { 
    InputSource is = new InputSource(in); 
    is.setSystemId(file.getAbsolutePath()); 
    xr.parse(is); 
} finally { 
    in.close(); 
} 
+0

它與普通的java應用程序一起工作,但不能與android應用程序一起使用 – Nipuna

1

關於您的第一個問題,您可以將文件直接存儲到Android手機上。一些很好的教程在Hello AndroidSkill Guru。爲了說明一些下面的代碼:

String aFileName = "mydata.xml"; 

// An output stream 
FileOutputStream fos = context.openFileOutput(aFileName, context.MODE_PRIVATE); 

//An input stream 
FileInputStream fis = openFileInput(FILE_NAME); 

關於第二個問題,因爲已經有人建議,你只是創建在步驟1中得到的文件輸入流,和你的好去輸入源。