引号失去GDataXml
问题描述:
保存XML时,我有一个XML文件是这样的:引号失去GDataXml
<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>
(注意引号都不见了) 所以,当我要分析此文件,我得到的所有“空”值。 如何在那里添加引号?或者只是避免这个错误。
答
由于您不再具有名称&姓氏作为属性,但现在将它们作为元素,因此在重新解析时看起来像是空值。当创建一个Patient元素不要addChild而是addAttribute或GDataXML的等价物
感谢一百万,我明白,用属性和孩子解析时没有区别 – lascort