NSXMLParser无法正确获取元素的内容 [英] NSXMLParser can not get the content of elements correctly

查看:67
本文介绍了NSXMLParser无法正确获取元素的内容的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下XMLParser,但是当我尝试运行它时,它无法正常工作.

i have the following XMLParser but when i try to run it, it doesn't work properly.

- (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方法:

AND here is my foundCharakter Method:

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

输出不是从开头开始,而是从字符串的中间开始... 我只是不明白,为什么有些结果看起来不错,而另一些结果却不好.

The output doesn't start from the beginning, it starts from the middle of the String... I just can not understand, why some results look nice where some others don't.

我在做什么错?如何正确解析xml?

What am i doing wrong ? How can i parse an xml properly ?

任何帮助将不胜感激.

提前谢谢

推荐答案

我使用了以下代码,现在可以工作:

I used the following code and works now:

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

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

这篇关于NSXMLParser无法正确获取元素的内容的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆