NSXMLElement * xml = [[[NSXMLElement alloc] initWithXMLString:xmlString error:Nil] autorelease]不能正常工作

时间:2011-11-10 13:13:51

标签: 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 个答案:

答案 0 :(得分:2)

XML文档只能有一个根元素。您的示例x​​mlString具有多个根元素:

1. <DamageAccount>...</DamageAccount>
2. <Damage>...</Damage>
3. <DamageType>...</DamageType>

您应该将这些封装在一个元素中:

<rootDamageElement>
    <DamageAccount>...</DamageAccount>
    <Damage>...</Damage>
    <DamageType>...</DamageType>
</rootDamageElement>

(注意:我已经阅读了有关该问题的评论,并承认该海报说他们发布了错误的字符串,但我觉得这个问题仍然需要找到遇到此问题的人的答案。) / em>的