ios如何做多个 xml 解析在我的课

发布时间: 2017/3/21 23:13:41
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我需要做的 xml 解析在我的课。

我发现

-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *) namespaceURI qualifiedName:(NSString *)qName
   attributes: (NSDictionary *)attributeDict
{

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


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

 }

但在需要做解析两次一个接一个,我如何使用这些方法

任何人可以请帮我。

先谢谢你了。

解决方法 1:

你想要做这样的事情吗?

有任何类型的标志变量。让我们考虑标志变量是 NSString。你要将两个 XML 文件来解析。考虑,一个 XML 是列出的项目,另一个是为详细信息视图。

你解析的第一个 XML (XML 列表,在我们的案例) 之前您设置标志,像这样,

NSString *xmlContentFlag = @"List";

然后,你解析的第二个 XML 之前 (详细的 XML) 设置了标志像这样,

NSString *xmlContentFlag = @"Detail";

在您的解析器方法中,执行下列操作,

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName 
    namespaceURI:(NSString *) namespaceURI qualifiedName:(NSString *)qName
    attributes: (NSDictionary *)attributeDict {

    if ([xmlContentFlag isEqualToString:@"List"]) {

        // your code here

    } else if ([xmlContentFlag isEqualToString:@"Detail"]) {

        // your code here
    }
}

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

    if ([xmlContentFlag isEqualToString:@"List"]) {

        // your code here

    } else if ([xmlContentFlag isEqualToString:@"Detail"]) {

        // your code here
    }
}

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

    if ([xmlContentFlag isEqualToString:@"List"]) {

        // your code here

    } else if ([xmlContentFlag isEqualToString:@"Detail"]) {

        // your code here
    }
 }

注意︰ 你可以有标志的任何类型,不一定是 NSString。

我希望这是你的期望。

官方微信
官方QQ群
31647020