2011-04-28 30 views
1

我正在開發一個應用程序,用於從存儲在服務器上的XML文件中檢索信息。從Android應用程序查詢遠程XML文件

我已經寫了一個使用SAX的解析器類,它讀入數據並將其彈出到一個對象中,然後我可以根據需要訪問該對象。

我該如何去查詢數據,例如搜索特定的值,然後只讀相關的元素。在服務器端,我可以輕鬆編寫XQuery以返回所需的元素,但我不確定如何從我的應用程序執行此操作。

是否有可能執行查詢服務器端,然後解析生成的XML文件?

我有點迷路。如果任何人都能指引我走向正確的方向,我會非常感激!

回答

0

如果您正在開發Android 2.2或更高版本,則可以利用javax.xml.xpath的功能(在API級別8中引入)。

如果您正在開發Android 2.1或更早版本,服務器端過濾器(如您所建議的:xquery或xpath)將是最好的,否則您應該過濾您的xml數據,或將其全部包裝到java對象在List<?>中,並過濾該列表。這兩種方式都相當資源豐富。我認爲,如果一次處理大量數據,但只顯示一小部分,服務器端過濾效果會更好(即使它需要多個http請求:在更改數據集時,無論如何這是不可避免的) 。

+0

是否有可能執行此服務器端篩選器「live」 - 如執行返回包含$ x的記錄的XQuery,其中$ x是用戶在應用程序中指定的字符串?謝謝。 – Jen22 2011-04-28 23:09:31

+0

您只需將$ x'作爲參數添加到您的請求中即可。在服務器端,根據運行xquery的參數檢索參數,並在響應中寫出生成的xml數據。其餘的都是一樣的。 – rekaszeru 2011-04-29 16:24:12