过去几天一直在使用这个应用程序,最后才将XML数据解析为UITableView。但主要问题是解析后显示的实际数据不是应该如何显示的。
例如,我有一个元素(在XML文件上),其值为“134.9”(不带引号),如果我使用'[NSString stringWithFormat:@“£%@”,[price objectAtIndex: indexPath.row]];”它在表格中显示为“{Lowest =”134.9 \ n \ t“; }”。
但是,如果我使用'%d',它会出现一堆随机数,甚至不匹配134.9?
所以这是代码:
cell.textLabel.text = [NSString stringWithFormat:@"£%d", [prices objectAtIndex:indexPath.row]];
这是如何设置XML的:
<PetrolPrices>
<Fuel type="Unleaded">
<Highest units="p">145.9</Highest>
<Average units="p">135.2</Average>
<Lowest units="p">131.9</Lowest>
</Fuel>
<Fuel type="Diesel">
<Highest units="p">149.9</Highest>
<Average units="p">139.3</Average>
<Lowest units="p">135.9</Lowest>
</Fuel>
<Fuel type="LRP">
<Highest units="p">136.9</Highest>
<Average units="p">136.9</Average>
<Lowest units="p">136.9</Lowest>
</Fuel>
<Fuel type="Super Unleaded">
<Highest units="p">152.9</Highest>
<Average units="p">142.3</Average>
<Lowest units="p">135.9</Lowest>
</Fuel>
<Fuel type="LPG">
<Highest units="p">76.9</Highest>
<Average units="p">76.9</Average>
<Lowest units="p">76.9</Lowest>
</Fuel>
<Link>
</Link>
</PetrolPrices>
最后,我使用解析器调用它的位:
- (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:@"Lowest"];
[item setObject:fuel_type forKey:@"type"];
[prices addObject:[item copy]];
NSLog(@"adding fuel prices: %@ - %@", fuel_price, fuel_type);
}
}
另外,如果有人能告诉我如何在XML <Fuel type="Unleaded">
中获取属性,我似乎无法检索到它。
提前致谢:)
答案 0 :(得分:4)
但如果我使用'%d',它会出现一堆随机数
%d是int的格式说明符,但是您传入了一个对象。如果您只想要数字,请保留%d但传递正确的值:
Item *item = [prices objectAtIndex:indexPath.row];
cell.textLabel.text = [NSString stringWithFormat:@"£%d", item.price];
或沿着这些线的东西,取决于你的对象。
答案 1 :(得分:0)
看看String Format Specifiers。这将使您的编码更容易。