iOS中的xmpp IQ XML解析
我收到了以下XML IQ,并希望在iOS中解析它。请帮忙iOS中的xmpp IQ XML解析,ios,xml,xmppframework,Ios,Xml,Xmppframework,我收到了以下XML IQ,并希望在iOS中解析它。请帮忙 <iq type="result"> <stories xmlns="success"> <storyid>1</storyid> <title>THE TITLE</title> <picture>BASE64EncodedStringOfImage<
<iq type="result">
<stories xmlns="success">
<storyid>1</storyid>
<title>THE TITLE</title>
<picture>BASE64EncodedStringOfImage</picture>
<storyid>2</storyid>
<title>Love At First Site</title>
<picture>BASE64EncodedStringOfImage</picture>
</stories>
</iq>
您正在迭代错误的元素<代码>NSArray*successStoryArray=[stories元素名称:@“storyid]”代码>将获得两个元素:值为1的storyid和值为2的storyid。 然后迭代这些元素并尝试提取title和picture,但title和picture不是的子元素。标题和图片与storyid处于同一级别,它们是的子对象 有两种方法可以解决此问题: 提取3个数组,每个数组都包含storyid、title和picture的值
NSArray *successStoryArray = [stories elementsForName:@"storyid"];
NSArray *titleArray = [stories elementsForName:@"title"];
NSArray *pictureArray = [stories elementsForName:@"picture"];
然后您可以按顺序迭代它们,项目将匹配
更好的是在我看来,通过将每个故事包装在一个元素中来更改XML的结构,如下所示:
<iq type="result">
<stories xmlns="success">
<story>
<storyid>1</storyid>
<title>THE TITLE</title>
<picture>BASE64EncodedStringOfImage</picture>
</story>
<story>
<storyid>2</storyid>
<title>Love At First Site</title>
<picture>BASE64EncodedStringOfImage</picture>
</story>
</stories>
</iq>
你试过什么??如果你根本不知道从哪里开始,试试这个@Agent,我已经在上面添加了我已经尝试过的。
<iq type="result">
<stories xmlns="success">
<story>
<storyid>1</storyid>
<title>THE TITLE</title>
<picture>BASE64EncodedStringOfImage</picture>
</story>
<story>
<storyid>2</storyid>
<title>Love At First Site</title>
<picture>BASE64EncodedStringOfImage</picture>
</story>
</stories>
</iq>
NSXMLElement *stories = [iq elementForName:@"stories"];
NSArray *successStoryArray = [stories elementsForName:@"story"];
NSLog(@"successStoryArray: %@", successStoryArray);
for (NSXMLElement *i in successStoryArray)
{
NSXMLElement *storyId = [i elementForName:@"storyId"];
NSString *sId = [storyId stringValue];
NSLog(@"sId: %@", sId);
NSXMLElement *title = [i elementForName:@"title"];
NSString *sTitle = [title stringValue];
NSLog(@"sTitle: %@", sTitle);
NSXMLElement *picture = [i elementForName:@"picture"];
NSString *sPicture = [picture stringValue];
NSLog(@"sPicture: %@", sPicture);
}