2013-05-05 78 views
0

我正在製作一個簡單的android應用程序,並且遇到解析簡單XML文件的問題。 即使通過文件存在,我也會得到FileNotFoundException,並且我擁有它的所有權限。我試圖以所有可能的方式修改路徑,但我總是得到這個異常拋出。android/java:無法解析現有的XML文件? (mac)

這裏是我的代碼 在主要活動:在引擎類

protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 

Engine engine = new Engine(); 
engine.parse(); 

}

public void parse() { 
      try { 

       File fXmlFile = new File("/res/XML/users.xml"); 
       if (!fXmlFile.exists()) { 
        throw new FileNotFoundException("Failed to find file: " + 
          fXmlFile.getAbsolutePath()); 
        } 
DocumentBuilderFactory dbFactory = DocumentBuilderFactory 
        .newInstance(); 
      DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); 
      Document doc = dBuilder.parse(fXmlFile); 
    ... 

真的看起來很簡單,但我不能得到這個工作。任何想法我做錯了什麼?

+0

所以我理解正確,該文件沒有找到?我只是想知道是否可以指向仿真器之外的文件,就像您正在嘗試的那樣 - 或者應該將xml文件駐留在仿真器文件結構中。 – harism 2013-05-05 14:11:19

+0

在哪裏可以在設備或模擬器上看到/Users/jon___davis/Desktop/users.xml? – bakriOnFire 2013-05-05 14:12:11

+0

粘貼錯誤的字符串。該文件是res/XML但情況不會改變.. – Lorenzo 2013-05-05 14:16:45

回答

2

爲了從資源中獲取文件,您可以使用兩個調用之一。

退房。 http://developer.android.com/reference/android/content/res/Resources.html

您可以使用context.getResources().openRawResource(R.xml.users)

這將返回一個輸入流允許你讀取文件。

或者您可以撥打context.getResources().getXml(R.xml.users)

這將返回的XML解析器的資源,這是一個pullParser,將允許您解析XML。

+0

這工作,謝謝。 – Lorenzo 2013-05-06 12:27:05