2011-12-02 35 views
0

我正在使用NSXMLParser成功處理來自服務器的響應。NSXMLParser處理複雜信息單元

像這樣的事情

<data> 
<company id=""> 
<name>XXX</name> 
<latitude></latitude> 
<longitude></longitude> 
</company> 
<company id=""> 
<name>XXX</name> 
<latitude></latitude> 
<longitude></longitude> 
</company> 
</data> 

我一直在使用下一個方法

  • didStartElement:的namespaceURI:......當新公司需要分析檢測,然後我分配新實例。並且,檢測屬性何時啓動
  • foundCharacters:處理每個屬性的內容
  • didEndElement:...該公司已完全解析並可添加到內部列表中。而且,檢測時的屬性已被處理,然後設置在foundCharacters處理的值:

方法現在,我還需要得到完整的XML爲一家公司,並將其存儲在本地緩存中,任何人知道是否有任何方法可以使用NSXMLParser爲一家公司獲取所有內容?或者也許不使用NSXMLParser。不知道。

<company id=""> 
<name>XXX</name> 
<latitude></latitude> 
<longitude></longitude> 
</company> 

謝謝

回答

1

最後,我決定重新創建XML usign的SAX方法

解析器:didStartElement:

// Adding the initial TAG of the xml 
accountXML = [[NSString alloc] initWithFormat:@"<%@", elementName]; 
for (NSString *key in [attributeDict allKeys]){ 
    accountXML = [accountXML stringByAppendingFormat:@" %@=\"%@\"", key 
        , [attributeDict valueForKey:key]]; 
} 
accountXML = [accountXML stringByAppendingString:@">\n"]; 

平價ser:didEndElement:

// Add the xml to the account and release it 
accountXML = [accountXML stringByAppendingFormat:@"</%@>\n", elementName]; 
[account setCompleteXML:accountXML];