Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios NSXMLParser问题:don';我得不到所有的项目,也没有数据_Ios_Xml_Nsmutablearray_Nsxmlparser_Nsxml - Fatal编程技术网

Ios NSXMLParser问题:don';我得不到所有的项目,也没有数据

Ios NSXMLParser问题:don';我得不到所有的项目,也没有数据,ios,xml,nsmutablearray,nsxmlparser,nsxml,Ios,Xml,Nsmutablearray,Nsxmlparser,Nsxml,尽管我看了很多图图,但我还是很难理解如何使用NSXMLParser 我有以下XML文件,例如: <rss> <channel> <title>The Title</title> <link>A URL</link> <language>English</language> <item> <name>John</name> <title>J

尽管我看了很多图图,但我还是很难理解如何使用NSXMLParser

我有以下XML文件,例如:

<rss>
<channel>
<title>The Title</title>
<link>A URL</link>
<language>English</language>
<item>
    <name>John</name>
    <title>John4034</title>
    <city>LA</city>
    <country>USA</country>
</item>
....
<item>
    <name>Marc</name>
    <title>Marc2942</title>
    <city>London</city>
    <country>England</country>
</item>
</channel>
</rss>
但有了这些,我有两个问题:

  • 我的项目数组只包含108个索引,而我的XML文件只有299个索引
  • 我的项目属性中没有数据。。。当我试图在日志中打印它时,所有内容都是(空的)

请帮忙

如果有人有同样的问题,我终于找到了解决办法

  • 不检查所有XML文件的问题是因为XML文件中存在PCDATA错误
  • 在该线程中,NSStrings中没有任何内容的问题已得到解决:
- (id) loadXMLbyURL : (NSString *) urlString
{
    items = [[NSMutableArray alloc] init];
    NSURL *url = [NSURL URLWithString:urlString];
    NSData *data = [NSData dataWithContentsOfURL:url];
    parser = [[NSXMLParser alloc] initWithData:data];
    parser.delegate = self;
    [parser parse];
    return self;
}

- (void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
    currentNodeContent = (NSMutableString *) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
}

- (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
    if([elementName isEqualToString:@"item"]) currentItem = [Item alloc];
}

- (void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
    if([elementName isEqualToString:@"name"]) [currentItem setName:currentNodeContent];
    if([elementName isEqualToString:@"title"]) [currentItem setTitle:currentNodeContent];
    if([elementName isEqualToString:@"city"]) [currentItem setCity:currentNodeContent];
    if([elementName isEqualToString:@"country"]) [currentItem setCountry:currentNodeContent];
    }
    if([elementName isEqualToString:@"item"])
    {
        [self.items addObject:currentItem];
        currentItem = nil;
        currentNodeContent = nil;
    }
}