的NSXMLParser不能正确得到元素的含量(NSXMLParser can not get th

2019-07-31 18:21发布

我有以下XMLParser的,但是当我尝试运行它,它不能正常工作。

- (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
    if ([elementname isEqualToString:@"results"])
    {
        currentJob = [SearchResult alloc];
    }

}

- (void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{


    if ([elementname isEqualToString:@"jobTitle"])
    {
        currentJob.jobTitle = currentNodeContent;
    }

    if ([elementname isEqualToString:@"location"])
    {
        currentJob.shortAddress = currentNodeContent;
    }

    if ([elementname isEqualToString:@"companyName"])
    {
        currentJob.employer = currentNodeContent;
    }

    if ([elementname isEqualToString:@"results"])
    {
        [self.jobs addObject:currentJob];
        currentJob = nil;
        currentNodeContent = nil;
    }
}

这里是我foundCharakter方法:

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

输出不从头开始,从字符串的中间开始......我只是不明白,为什么有些结果看起来不错,其中一些别人不一样。

我究竟做错了什么 ? 我怎样才能正确地解析XML?

任何帮助将不胜感激。

Thx提前

Answer 1:

我用下面的代码和现在的工作:

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{

     if(!elementContentString) 
     elementContentString = [[NSMutableString alloc] initWithString:string]; 
     else 
    [elementContentString appendString:string];
}


Answer 2:

我不认为在你的代码中的任何问题,这是在我结束工作的罚款。 我使用Twitter的API用于获取XML和它给我正确的输出。



文章来源: NSXMLParser can not get the content of elements correctly