Кавычки теряются при сохранении XML с GDataXml - PullRequest
0 голосов
/ 09 декабря 2011

У меня есть 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];

Etc

После этого xml-файл выглядит следующим образом:

<Patients>
<patient>
<name>someName</name> 
<lastName>someLastName</lastName>
<aProperty>anIntegerValue</aProperty>
</patient>
</Patients>

(обратите внимание, кавычки ушли) Поэтому, когда я хочу проанализировать этот файл, я получаю все "нулевые" значения. Как мне добавить кавычки там? Или просто избегайте этой ошибки.

1 Ответ

1 голос
/ 09 декабря 2011

Похоже, вы получаете нулевые значения при повторном анализе, потому что у вас больше нет имени и фамилии в качестве атрибутов, но теперь они имеют элементы.При создании элемента aPatient не добавляйте addChild вместо addAttribute или его эквивалента для GDataXML

...