我是iPhone开发的新手。我想解析这样的XML文件来获取属性值。如何检查iPhone上带有空标签的结束元素?
<Root>
<element att_1 ="value1" att_2 ="value2" />
<element att_1 ="value1" att_2 ="value2" />
.
.
.
<Root/>
通常XML文件
<element att="..."> content <element/>
我用这个在didEndElement
if([elementName isEqualToString:@"element"]){
// Do something
}
如何检查空标签?请给我建议。 谢谢。
对不起我的英语不好。
============================================== =======================
现在我有新的problem.when我运行应用程序(模拟器)它卡住并显示消息“Thread1:停止在断点“在didStartElement.I我想我做错了什么。
StudyList.xml
<StudyList>
<study description="20040311181130" modsInStudy="" pat_birth="19760822" pat_id="47-3450" pat_name="Ekachai Chaichanasiri" refPhy="" study_date="Sun Jan 11 00:03:00 ICT 2004" study_id="696122224" study_iuid="1.2.392.200036.9123.100.200.20040311181130"/>
<study description="XoranCAT Study" modsInStudy="" pat_birth="19821117" pat_id="63" pat_name="Wantana Areeprayolkij" refPhy="" study_date="Fri Jan 28 00:04:00 ICT 2005" study_id="" study_iuid="1.2.826.0.1.3680043.2.594.4041.16900.9840.32723.30648"/>
</StudyList>
代表
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{
if ([elementName isEqualToString:@"StudyList"]) {
//Initialize the array.
appDelegate.studyList = [[NSMutableArray alloc] init];
} else if ([elementName isEqualToString:@"study"]) {
//Initialize the study.
aStudy.patientBrith = [attributeDict objectForKey:@"pat_birth"] ;
aStudy.patientID = [attributeDict objectForKey:@"pat_id"];
aStudy.patientName = [attributeDict objectForKey:@"pat_name"];
aStudy.studyDate = [attributeDict objectForKey:@"study_date"];
NSLog(@"Patient name: %@",aStudy.patientName);
NSLog(@"Patient ID: %@",aStudy.patientID);
NSLog(@"Patient Birth: %@" ,aStudy.patientBrith);
NSLog(@"Study Date: %@" ,aStudy.studyDate);
}
NSLog(@"Process Element");
}
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
//Nothing to do because XML file dose not have text node
}
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
//End if XML file nothing to do.
if ([elementName isEqualToString:@"StudyList"]) {
return;
//Add study object in to array and release the object.
if ([elementName isEqualToString:@""]||elementName == nil) {
[appDelegate.studyList addObject:aStudy];
}
}
}
的NSLog(@ “患者姓名:%@”,aStudy.patientName);
NSLog(@“Patient ID:%@”,aStudy.patientID); NSLog(@“Patient Birth:%@”,aStudy.patientBrith); (@“学习日期:%@”,aStudy.studyDate);
***以上输出为空。 有什么不对,请以正确的方式告诉我。
如果您希望ppl能够帮助您,您可能想要接受以前问题的答案。 – Balanivash
如果有人回答您提问的问题,答案旁边将显示复选标记的大纲。你可以点击它来“接受”一个最能解决你问题的答案。这会提醒其他人回答可能会对他们有帮助的问题,将信誉点授予花时间回答您问题的人,并且通常是支持SO社区的好方法。您可能想回顾以前的9个问题,看看是否有真正帮助的问题,并“接受”它。 – PengOne
谢谢你的建议,我会做的。 – miniplayground