ビューコントローラーで解析されたxmlファイルの内容を提供しようとしています。ノード文字列の内容が次の場合、どうすればよいですか。
xml ファイルは次のようになります。
<XML>
<Data>
<ID_Number>8</ID_Number>
<Date> 13.12.2009</Date>
<Time> 17:50:00</Time>
<Temperature> 37.2 </Temperature>
<Speed>34.2</Speed>
<Direction>90.4</Direction>
<AirPressure>1040.3</AirPressure>
</Data>
</XML>
.h ファイルのパーサー
@interface Parser : NSObject
@property ( nonatomic,strong) NSMutableString *mutableTemperatureValue;
@property ( nonatomic,strong) NSMutableString *mutableWindDirection;
@property ( nonatomic,strong) NSMutableString *mutableWindSpeed;
@property (nonatomic,strong) NSMutableString *mutableAirPressure;
@property (nonatomic,strong) NSMutableString *mutableAcquiredDate;
@property (nonatomic,strong) NSMutableString *mutableAcquiredTime;
-(void)parserStart;
@end
m.file :
-(void)parserStart
{
NSURL *url = [NSURL URLWithString:myWebServiceXMLUrl];
NSData *data = [NSData dataWithContentsOfURL:url];
NSXMLParser *xmlParser = [[NSXMLParser alloc]initWithData:data ];
NSString *xmlCheck = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"xmlCheck =%@", xmlCheck);
[xmlParser setDelegate:self];
[xmlParser parse];
}
次のような .m ファイルのデリゲート メソッド: didStart...
if([elementName isEqualToString:@"Date"] ){
self.mutableAcquiredDate = [[NSMutableString alloc]init];
return;
}
if([elementName isEqualToString:@"Time"]){
self.mutableAcquiredTime = [[NSMutableString alloc]init];
return;
}
if([elementName isEqualToString:@"Temperature"]){
self.mutableTemperatureValue = [[NSMutableString alloc]init];
return;
}
.
.
.
見つかった文字:
[self.mutableTemperatureValue appendString:string];
[self.mutableWindSpeed appendString:string];
[self.mutableWindDirection appendString:string];
[self.mutableAirPressure appendString:string];
[self.mutableAcquiredDate appendString:string];
[self.mutableAcquiredTime appendString:string];
と didEnd 。. .
if([elementName isEqualToString:@"Date"]){
NSLog(@"mutableAcquiredDate : %@", self.mutableAcquiredDate); // this gives the right data
return;
}
viewController .h ファイル内
@property (strong, nonatomic) IBOutlet UILabel *labelWindSpeed;
@property (strong, nonatomic) IBOutlet UILabel *labelTemperatur;
@property (strong, nonatomic) IBOutlet UILabel *labelAirPressure;
@property (strong, nonatomic) IBOutlet UILabel *labelUpdateDateTime;
viewController .m ファイル内
// Create Parser object and start parsing
self.parser = [[Parser alloc]init];
[self.parser parserStart];
// Assigning the values from Parser Class to labels
// Date and Time
self.labelUpdateDateTime.text = self.parser.mutableAcquiredDate ;
NSLog(@"---------:%@", self.labelUpdateDateTime.text);// This gives all the contents of the xml nodes why?
// Temperatur
myStartTemperatureValue = [self.parser.mutableTemperatureValue floatValue];
labelTemperatur.text = [NSString stringWithFormat:@"%.1f", myStartTemperatureValue];// This works also correct.
ノードのすべてのコンテンツをリストせずに、viewController から Date ノードのコンテンツのみに到達するにはどうすればよいですか。ありがとう...