IOS序列化的XML文件到nsmutable字典,其中XML有多个atributes
问题描述:
我试图序列化XML这样的:IOS序列化的XML文件到nsmutable字典,其中XML有多个atributes
<Rows>
<RowOne SKATERID="706" MANUFACTURER="A-DZG" ISFACT="F" ISSKATE="F">True</RowOne>
<RowTwo SKATERID="318" MANUFACTURER="A-FGW" ISFACT="F" ISSKATE="T">True</RowTwo>
<RowThree SKATERID="458" MANUFACTURER="A-OPJ" ISFACT="F" ISSKATE="T">False</RowThree>
<RowFour SKATERID="178" MANUFACTURER="A-JSL" ISFACT="F" ISSKATE="T">True</RowFour>
</Rows>
但我的问题是,什么是做它包括atributes的最佳途径。到目前为止,我有我的解析器工作,当我检测到节点具有属性,我将它们发送到本地nsmutabledictionay。但我的问题是如何映射attibutes的dictonary和节点的值。例如在RowOne中,值是真实的bute它具有以下属性SKATERID =“706”MANUFACTURER =“A-DZG”ISFACT =“F”ISSKATE =“F”。
在 - (无效)解析器:(的NSXMLParser *)解析器didStartElement:(的NSString *)的ElementName的namespaceURI:(的NSString *)的namespaceURI的qualifiedName:(的NSString *)QNAME属性:(的NSDictionary *)attributeDict {
我有这种类似的代码:
if ([attributeDict count] != 0) {
self.myDict = [[NSDictionary alloc] initWithDictionary:attributeDict];
}
in -(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
我想弄清楚什么是序列化的词典与节点的值的最佳方式
我会很感激你的帮助
答
编辑: 重新读你的问题后,你是什么意思的“序列化”?等待您的回答下面的解决方案可能不是你想要的。
如果你的XML属性是静态的,我会建议创建一个自定义类,myRowClass,经营这样的...
myRow.SkaterID //NSString
myRow.Manufacturer //NSString
myRow.IsFact //BOOL
myRow.IsSkate //BOOL
与该定制类你可以把每个myRow对象到您的NSMutableDictionary这样。 ..
[myDict setObject:myRow forKey:@"RowOne"]
myRow = nil;
myRowClass *myRow = [[myRowClass alloc]init];
<...Iterate through next XML Node...>
[myDict setObject:myRow forKey:@"RowTwo"]
然后,当你需要访问你的数据,你可以找回这样的...
NSString *myCurrentSkaterID = [[myDict objectForKey:@"RowTwo"].SkaterID]
或
myRowClass *myCurrentRow = [[myRowClass alloc]init];
myCurrentRow = [myDict objectForKey:@"RowTwo"];
NSString *myCurrentSkaterID = myCurrentRow.SkaterID;
如何显示您当前的代码和你想要的结果。 – Wain
我希望如果HelenaM会给我我的复选标记,因为她给我的解决方案使用了didStartElement = P – Dan
xcode,iphone和ipad标记与您的问题无关。这就是为什么他们被删除。 – rmaddy