#iphone #xml
#iPhone #xml
Вопрос:
У меня есть NSString, которая выглядит следующим образом:
xmlstring=@"<DamageAccount><EntityState>Added</EntityState><Id>5555</Id><DamageList><Damage><Id>5727</Id></Damage></DamageList><Time>2011-09-22T11:38:12</Time><Title>DamageAcc</Title></DamageAccount><Damage><EntityState>Added</EntityState><Id>5727</Id><DamageType><Id>5726</Id></DamageType><Description>Bad</Description><Name>Da1</Name></Damage><DamageType><EntityState>Added</EntityState><Id>5726</Id><Description>Big</Description><Name>Fire</Name><Symbol>Fire</Symbol></DamageType>";
Но я хочу создать NSXMLElement.
Поэтому я использовал:
NSXMLElement *xml = [[[NSXMLElement alloc] initWithXMLString:xmlString error:nil] autorelease];
В тот момент, когда я запустил свою программу, я получаю сообщение об ошибке, и моя программа выходит из строя.
Ошибка, которую я получаю, заключается в:
Entity: line 1: parser error : Extra content at the end of the
document
ageList><Time>2011-09-22T11:38:12</Time><Title>DamageAcc</Title></DamageAccount>
Кто-нибудь знает, что не так с моей программой?
Комментарии:
1. Ваша строка не является XML-строкой.
2. Извините, я разместил неправильную строку.. Но знайте, это правильная строка с той же проблемой
3. Просто разместите здесь правильную строку.
Ответ №1:
XML-документ может иметь только один корневой элемент. Ваш пример xmlString содержит несколько корневых элементов:
1. <DamageAccount>...</DamageAccount>
2. <Damage>...</Damage>
3. <DamageType>...</DamageType>
Вы должны инкапсулировать их в один элемент:
<rootDamageElement>
<DamageAccount>...</DamageAccount>
<Damage>...</Damage>
<DamageType>...</DamageType>
</rootDamageElement>
(Примечание: Я прочитал комментарии к вопросу и признаю, что в постере говорилось, что они разместили неправильную строку, но я чувствовал, что этот вопрос все еще требует ответа для кого-то, кто сталкивается с этим it).