我想将一个非常简单的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" />",
我环顾四周,发现了一些图书馆,但后来我仍然需要实施很多东西。有谁知道这可以更容易吗?
亲切的问候
答案 0 :(得分:5)
在NSXMLParser上面写了一个很好的包装类。只需传递XML String即可。它将转换为NSDictionary。
答案 1 :(得分:1)
请勿使用第三方库。使用其中一个内置的:
对于这种情况,您最好使用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
将具有所有属性。