2011-08-07 58 views
1

我要去直切的问题得到了属性,我有了例如像属性的XML文件:需要从XML文件

<Lowest units="p">135.9</Lowest> 

我需要得到的是价值从'单位',就好像我刚刚从'最低'得到的值一样,它显示为'{最低=“135.9”\ n \ t; }',我假设如果我从属性中得到它,它只会显示'135.9'而不是上面的值。

这里的编码我使用的主要有两个位:

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict 
{ 
    NSLog(@"found this element: %@", elementName); 

    currentElement = [elementName copy]; 


    if ([elementName isEqualToString:@"Fuel"]) 
    { 
     item = [[NSMutableDictionary alloc] init]; 
     fuel_price = [[NSMutableString alloc] init]; 
     fuel_type = [[NSMutableString alloc] init]; 
    } 


} 

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName 
{ 
    NSLog(@"ended element: %@", elementName); 

    if ([elementName isEqualToString:@"Fuel"]) 
    { 
     [item setObject:fuel_price forKey:@"p"]; 

     [item setObject:fuel_type forKey:@"type"]; 

     [prices addObject:[item copy]]; 

     NSLog(@"adding fuel prices: %@ - %@", fuel_price, fuel_type); 
    } 

} 

希望有人可以点我在正确的方向,因为我已经试过,没有运气这么多的方法。

在此先感谢! :)

回答

1

所有属性都存放在这个attributeDict NSDcitionary里面你didStartElement得到...方法,它的格式,即属性名称是关键和值,那么,价值:)所以,你的元素里,如果你想得到属性命名单位的价值,你会这样做:

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict 
{ 
    if ([elementName isEqualToString:@"Lowest"]) { 
     NSString *units = [attributeDict objectForKey:@"units"]; 
    } 
} 
+0

非常感谢你,不能相信我没有想到的:) – bennyyboi