我有一个像这样的xml文件:
<Patients>
<patient name="someName" lastName="someLastName">
<aProperty>anIntegerValue</aProperty>
</patient>
</Patients>
所以我用NSXMLParser解析这个:
在didStartElement中我有类似的东西:
if ([elementName isEqual:@"Patients"]) {
appDelegate.patients = [[NSMutableArray alloc] init];
}
else if ([elementName isEqualToString:@"patient"]){
aPatient = [[Patient alloc] init];
aPatient.name = [attributeDict objectForKey:@"name"];
aPatient.lastName = [attributeDict objectForKey:@"lastName"];
然后在某些时候我想保存所做的更改,所以我使用GDataXML来保存它:
GDataXMLElement * patientsElement = [GDataXMLNode elementWithName:@"Patients"];
for(Patient *aPatient in patients) {
GDataXMLElement *nameElement = [GDataXMLNode elementWithName:@"name"];
GDataXMLElement *lastNameElement = [GDataXMLNode elementWithName:@"lastName"];
[aPatient addChild:nameElement];
[aPatient addChild:lastNameElement];
等
执行此操作后,xml文件如下所示:
<Patients>
<patient>
<name>someName</name>
<lastName>someLastName</lastName>
<aProperty>anIntegerValue</aProperty>
</patient>
</Patients>
(注意引号已经消失) 因此,当我想解析这个文件时,我得到所有“null”值。 如何在那里添加引号?或者只是避免这个错误。
答案 0 :(得分:1)
看起来你在重新解析时会得到空值,因为你不再有名字&amp;姓氏作为属性,但现在将它们作为元素。在创建aPatient元素时,请不要使用addChild而是使用addAttribute或GDataXML的等效元素