解析xml时如何在两个同名元素之间进行选择

时间:2013-02-25 01:57:27

标签: objective-c xml-parsing

我正在学校解析xml,而我正在使用Twitter的API。我试图抓住推文发布的日期,但我遇到了一个问题:有两个同名的元素在xml中包含不同的值。然而,一个嵌套比另一个嵌套得更远,所以逻辑上我想要检查嵌套的那个。我该怎么做呢?

现在一切都很完美。我只想在项目中添加更多内容。

这是我正在调用的didEndElement方法的示例。

 -(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:          (NSString *)namespaceURI qualifiedName:(NSString *)qName
{
//Creates an instance of the singleton to grab the array stored there
DataArraySingleton *singleton = [DataArraySingleton sharedArray];

//easy access to array
NSMutableArray *array = singleton.theArray;

//If the element ends with text
if ([elementName isEqualToString:@"text"])
{
    //Sets the value/key pair for text
    [tweets setValue:currentXMLValue forKey:elementName];

}
//Same as above
if ([elementName isEqualToString:@"screen_name"])
{
    [tweets setValue:currentXMLValue forKey:elementName];
}
//Same as above
if ([elementName isEqualToString:@"profile_image_url"])
{
    [tweets setValue:currentXMLValue forKey:elementName];
}
//If the element ends with status
if ([elementName isEqualToString:@"status"])
{
    //Adds the objects collected above to the array
    [array addObject:tweets];

    //Resets the object TweetInformation to be called again above
    tweets = nil;

}
//Resets xml value
currentXMLValue = nil;
}

谢谢你们

1 个答案:

答案 0 :(得分:0)

添加代码以检查所需嵌套日期元素的父标记。遇到开始标记时,请在代码中设置标记。现在,当您遇到日期标记时,请检查是否设置了标记。如果未设置标志,请忽略日期标记。当您检测到父标记的结束标记时,请重置标记。