0

次のような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」値が取得されます。そこに引用符を追加するにはどうすればよいですか? または、このエラーを回避してください。

4

1 に答える 1

1

名前と姓を属性として持たなくなったため、再解析時に null 値を取得しているように見えますが、それらを要素として持つようになりました。aPatient 要素を作成するときは、 addChild の代わりに addAttribute または GDataXML の同等物を作成しないでください

于 2011-12-08T23:31:28.200 に答える