2010-08-27 87 views
1

我有以下情況。如何在Android上使用SAX解析不同的XML文件?

我將XML文件作爲請求發送到服務器,並獲取XML文件作爲響應,並將所有這些文件作爲Android上的後臺線程。

使用各種值對XML請求進行序列化。 XML響應由SAX讀取並放入列表中。整個請求/響應過程發生在使用AsyncTask類的後臺線程中。

問題是我有不同類型的響應,我不知道根據發送的請求來解析響應的方法。

如何讓Android根據請求B使用基於請求A和解析器B的解析器A?

編輯:隨着不同類型的答覆我的意思是XML文件看起來不同。它有不同的標籤和不同的屬性。

回答

2

這裏的屬性,用於指示和對象類型的選項,因爲我看到他們:

  1. 您可以基於解析基於請求的能力(應該有某種上下文)。如果您知道請求是類型A,那麼您知道響應必須使用分析器A.
  2. 您可以爲所有類型分配通用分析器,並根據第一個已知標記或屬性指示分支器中發生應該做什麼。
  3. 先解析後分析。採取所有響應元素,並從中構建對象或對象圖。如果需要爲你的應用程序傳遞它們(不要嘗試編輯xml - 你最終解析它,並且你希望它儘快完成)。

祝你好運!

+0

感謝您的回答。你最後的選擇似乎很有趣。有沒有辦法使用SAX解析器來實現這一點? – 2010-08-27 17:08:16

+0

當然,任何開始/結束元素事件都可以用來描繪對象邊界。 – Nate 2010-09-02 13:28:53

1

的都是消息響應對象,指定要在XML響應

<response> 
<error/> 
<data type="A"> 
</data> 
</response> 

<response> 
<error/> 
<data type="B"> 
</data> 
</response> 
+0

我唯一的問題是我無法修改XML。 – 2010-08-27 12:39:24

+0

然後解析xml以獲取特定的差異性,然後在該值上分支代碼。 – 2010-08-27 13:47:36