NSXMLElement *xml = [[[NSXMLElement alloc]Ошибка initWithXMLString:xmlString: Nil]автозапуск] не работает

#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).