2010-04-05 65 views
0

林建立一個iPhone應用程序的新版本,我想知道我是否應該檢查我的應用程序如何與服務器通信。 我的iPhone客戶端通過HTTP請求發送和接收XML。iPhone上的XML處理:什麼是最佳選擇?

發送我使用ASIHTTPRequest框架的信息。我通過附加字符串「手動」構建XML請求。

使用NSXMLParser解析響應Im。

我的問題是如果我有更好的選擇 A)從內存對象中創建一個XML字符串。 B)從XML字符串中創建一個內存對象。

有沒有像JAXB那樣將XML編組爲對象的東西?

感謝 Gonso

回答

1

我不能完全肯定這是否會爲你工作,但你可以嘗試使用JSON以JSON解析器如SBJSON,你基於這將在內存中創建一個對象一起數據。

要從XML提要中獲取JSON,我相信您可以將XML請求發送到YQL(http://developer.yahoo.com/yql),然後可以將該提要翻譯成JSON,然後再發回。

+0

感謝您的回答。 SBJSON看起來好像可以解決問題,但我無法切換到JSON,因爲有其他客戶端正在與同一臺服務器交談。 – gonso 2010-04-06 07:23:44

1

解析XML

我想不出東西,看起來標籤和直接解析東西放到對象(XML),但一個標準線,由線分析器幹這個工作。它確實需要很多代碼才能使用NSXMLParser,所以只需設置一個外部類即可。它不需要那麼久,很容易取消[parser abortParsing]

我基本上使用一個模型,它啓動一個父元素,從細節元素獲取數據,然後當父元素關閉時,解析器將臨時數據,用它填充對象,並將該對象添加到數組中。然後重複這個過程。我不認爲我的方式會非常有效,如果你有更多的3級XML(父母內部的根==>父母標籤==>詳細信息標籤),但它適用於我。如果你有複雜的XML,我會找到一些方法切換到JSON並使用像Matt.M建議的SBJSON。 創建XML

如果我創建XML,我只想用一堆for環和一個大的NSMutableString的。

+0

感謝您的回答。我已經在使用解析器,但我正在尋找更類似OO的解決方案。 – gonso 2010-04-06 07:24:35

相關問題