将非常简单的XML字符串解析为NSDictionary

时间:2013-12-26 09:22:52

标签: ios iphone objective-c xml nsdictionary

我想将一个非常简单的XML字符串解析为NSDictionary,以便我可以轻松访问这些属性。

RecurrenceInfo: "<RecurrenceInfo Start="12/24/2013 01:00:00" End="01/03/2014 01:00:00" DayNumber="24" WeekOfMonth="0" WeekDays="62" Id="49409301-c3ec-43f0-8571-ca42258e8a6f" Month="12" OccurrenceCount="9" Range="1" />",

我环顾四周,发现了一些图书馆,但后来我仍然需要实施很多东西。有谁知道这可以更容易吗?

亲切的问候

3 个答案:

答案 0 :(得分:5)

在NSXMLParser上面写了一个很好的包装类。只需传递XML String即可。它将转换为NSDictionary。

https://github.com/amarcadet/XMLReader

答案 1 :(得分:1)

请勿使用第三方库。使用其中一个内置的:

  • 的NSXMLParser
  • 的libxml2

对于这种情况,您最好使用NSXMLParser,有很多可用的示例,但官方文档位于:https://developer.apple.com/library/ios/documentation/cocoa/Conceptual/XMLParsing/XMLParsing.html#//apple_ref/doc/uid/10000186i

您应该专门创建一个类,以使用NSXMLParser解析您的XML字符串类型。它可以返回自身的实例,也可能返回NSDictionary。由你决定。

答案 2 :(得分:1)

创建NSXMLParser

的对象
NSXMLParser *myParser = [[NSXMLParser alloc] initWithData:xmlData]; 
[myParser setDelegate:self]; 
[myParser setShouldResolveExternalEntities: YES];
[myParser parse];
[myParser release];      

在委托方法中,您将找到属性字典。

-(void)parser:(NSXMLParser*)parser
didStartElement:(NSString*)elementName
 namespaceURI:(NSString*)namespaceURI
qualifiedName:(NSString*)qualifiedName
   attributes:(NSDictionary*)attributeDict;

此处attributeDict将具有所有属性。