2012-02-14 81 views
0

使用NSXMLDocument,不使用XPath,是否有一種簡單的方法來解析XML文檔並將其反序列化爲自定義對象以創建對象樹層次結構?NSXMLDocument解析到自定義對象中

例如,如果我具有下面顯示的xml,是否可以將細節放入Restaurant對象和其中的內容對象中?

<restaurants> 
    <content>spanish name</content> 
    <content>english name</content> 
</restaurant> 
<spa> 
    <content>spa spanish name</content> 
    <content>spa english name</content> 
</spa> 

我將使用上面的答案來擴展它在iOS中的kissxml中進行編程。由於kissXML文檔提到XML解析器的行爲與NSXMLDocument相同,所以我使用NSXMLDocument提出了這個問題。

回答

1

如果你知道你期望的內容結構,最簡單的方法就是使用NXMLParser並循環遍歷它,尋找需要的位並跟蹤前一位,並在找到它們時構建一個對象。

如果你想要基於樹的方法,考慮學習XQuery和XPath,它們並不是那麼糟糕。沒有它們,NSXMLDocument實際上給你的唯一東西就是Cocoa綁定。

在一天結束時,您必須以某種方式轉換您的數據。

使用NSXMLDocument,如果可能的話,您仍然可以很好地驗證XML DTD,以確保您有良好的數據。

使用NSXMLParser,您可以在沒有正式DTD的情況下處理事務。 你只需要擔心數據有多大,你想如何解析它,然後用測試數據做一些試驗和錯誤,以確保它抓住你想要或需要的東西。