2011-05-10 36 views
1

我一直在使用NSXMLParser來解析xml,併成功地啓動應用程序......最近我遇到了xml的問題...由於xml非常重量。它增加了頭腦的記憶力......我打算轉向plist(因爲它大大減少了內存開銷)。並不知道從哪裏開始...我已經通過網絡搜索,並沒有成功,你們可以給我一個示例代碼,甚至包含一個plist工作的網址......是綽綽有餘......我如果你們能幫助我,我會非常感激。使用plist的webservices

+0

但是plist *是* XML(除非你的意思是二進制格式)。 – Joe 2011-05-13 14:37:38

+0

@joe:喲我的意思是二進制格式的東西... – kingston 2011-05-16 05:00:04

回答

1

您可以使用https://github.com/jayway/CWFoundation中的CWXMLTranslator輕鬆地將XML從XML轉換爲域對象。

假設你有這樣的領域類:

@interface Book : NSObject { 
} 
@property(copy) NSString* author; 
@property(copy) NSString* title; 
@end 

而這個XML:

<books> 
    <book> 
    <author>James Joyce</author> 
    <title>Ulysses</title> 
    </book> 
    <!-- MORE BOOKS HERE --> 
</book> 

你只需要定義一個翻譯文件,將其命名爲Book.xmltranslation,並添加此:

book +> @root : Book { 
    author >> author; 
    title >> title; 
} 

然後,這將被用來從他的服務器獲取和傳遞XML到您的活動實例Book類是這樣的:

NSArray* books = [CWXMLTranslator translateContentsOfURL:url 
            withTranslationNamed:@"Book" 
               delegate:nil 
                error:NULL]; 

這是可用的最簡單的用例,翻譯DSL,甚至可以在線如果你想要寫的。 CWXMLTranslator也支持更復雜的操作,如類型轉換爲日期,URL,數字等。以及嵌套類型,以及直接轉換爲Core Data託管對象。

CWFoundation項目包含您需要的所有文檔以及解析RSS提要的示例項目。

+0

老兄感謝你的努力..但想到的是我的團隊已經決定去二進制plist .....其中php標籤將被剝奪和數據將被放入plist ...我的工作是拉內容......更高的ups已決定wid dis idea ..無論是我還是php團隊hav不知道從哪裏開始..你有什麼線索從哪裏開始 – kingston 2011-05-16 05:04:29

+0

@kingston - 我覺得二元化是你的來自問題的電話?蘋果已經記錄了plist格式,隱藏在這個文件中的評論http://opensource.apple.com/source/CF/CF-550/CFBinaryPList.c – PeyloW 2011-05-16 06:52:44

+0

謝謝..但dis看起來有點複雜....一個woking url包含一個二進制plist文件已經足夠我開始wid ... – kingston 2011-05-16 07:16:24

1

現代plists XML:Property Lists。可以使用和創建二元plists,但它們只是一種二進制XML形式。這反過來意味着開銷的降低,但代價是可讀性。 JSON可能比同等的XML小,但並不總是如此。

拋開所有的一切,plists往往是更多詳細比等效的XML。比較XML:

<book> 
    <author>James Joyce</author> 
    <title>Ulysses</title> 
</book> 

具有同等的plist:

<dict> 
    <key>author</key> 
    <string>James Joyce</string> 
    <key>title</key> 
    <string>Ulysses</string> 
</dict> 
+0

cudü給我一個工作的網址,其中包含放置在遠程服務器plist ...再次感謝 – kingston 2011-05-11 04:45:51

2

,如果你有對數據的格式控制,你使用JSON而不是考慮?

+0

@niselbot:我wud考慮去json,但...更高級的定稿去plist ....它喜歡DIS的PHP團隊是要去除PHP標籤,並把數據放在plist,然後放置在MySQL .....我的工作是訪問網址,並拉鍊接有效... PHP團隊和我自己不知道從哪裏開始....是無論如何possbile有一個woking plist url..with示例代碼 – kingston 2011-05-12 07:55:21

+0

我仍然說與JSON去,尤其是存儲在您的數據庫。無論如何,作爲開始,請看'[NSData dataWithContentsOfURL:options:error:]'。如果你想要更全面的功能,你也可以嘗試RestKit或ASIHTTPRequest。祝你好運。 – nielsbot 2011-05-12 08:57:31