ios - Objective-C 附加字符串不起作用 NSXMLParser

标签 ios parsing http

我正在尝试解析一些 XML 数据并将解析后的数据附加到 NSString 对象中。我已经使用 NSXMLParser 成功解析了 XML 数据,但是当我记录名为 arrayString 的字符串的值时,我刚刚得到第一个 <name> 的值,而不是全部。我做错了什么?

这是我的代码:

(void)parseWithData:(NSData *)data {
parser = [[NSXMLParser alloc] initWithData:data];
[parser setDelegate:self];
//You might want to consider additional params like:
[parser setShouldProcessNamespaces:NO];
[parser setShouldReportNamespacePrefixes:NO];
[parser setShouldResolveExternalEntities:NO];
//And then finally (which activates the delegates):
[parser parse];
NSLog(@"The content of the array is%@",childElement);

}

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI             qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{
 currentElement = nil;
 currentElement = [elementName copy];
 if ([elementName isEqualToString:@"row"]) {
    //This means the parser has entered the XML parent element named: xmlParentElement
    //All of the child elements that need to be stored in the array should have their own IVARs and declarations.
    childElement = [[NSMutableString alloc] init];
 }
 }

 - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
   //For all child elements, run this if statement.
    if ([currentElement isEqualToString:@"name"]) {
    [childElement appendString:string];
    NSLog(string);
    [arrayString stringByAppendingString:string];
   // NSLog(arrayString);


   }

我通过调用这些方法来解析数据:

  NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:data];
  [self parseWithData:data];

最佳答案

stringByAppendingString 函数返回一个 NSString。它不会改变接收器。

您需要修复对 stringByAppendingString 的使用。例如,在 foundCharacters 中,将其替换为:

[arrayString stringByAppendingString:string];

这样:

arrayString = [arrayString stringByAppendingString:string];

苹果的documentation on stringByAppendingString :

stringByAppendingString:

Returns a new string made by appending a given string to the receiver.

此外,附加字符串时,不要忘记在附加字符串之前初始化该字符串。

关于ios - Objective-C 附加字符串不起作用 NSXMLParser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17996256/

相关文章:

ios - 如何使用 ios-charts 在一个屏幕上有固定点,然后滑动到下一页?

json - 如何通过 HTTP 发送 Unicode JSON?

ios - 核心图标题搜索路径,递归是什么意思?

ios - 从 html 内容创建一个 attributedString 而不删除换行符

parsing - 如何检测 Jison 中的新行?

python - 如何在 Beautiful Soup 4 中插入未转义的 html 片段

java - Android 中的 HTML 解析

php - 编辑数据库的 HTTP 请求

image - HTTP 重定向图像可以吗?

objective-c - 如何防止自定义 UITableViewCells 在取消选择时闪烁白色?