以指定格式iOS解析XML文件

时间:2015-05-11 09:05:51

标签: ios objective-c iphone xml ipad

无论如何,我可以解析以下格式的XML文件: -

<?xml version="1.0" encoding="utf-8"?>
<CountryList>
  <Country CountryId="AF">Afghanistan</Country>
  <Country CountryId="AX">Akrotiri</Country>
  <Country CountryId="AL">Albania</Country>
...........................................
...........................................

我需要国家/地区ID和名称: - 即“AL”和“阿尔巴尼亚”那么,是否可以解析指定的XML,并将国家/地区ID和国家/地区名称存储在数组。 任何建议都会有所帮助。

3 个答案:

答案 0 :(得分:0)

使用NSDictionary(键值)保存值。您可以使用此库来获取和保存值:

Parse XML 您可以找到在所提到的页面上提取所需数据的所有说明。

答案 1 :(得分:0)

在Omer Waqas Khan链接的帮助下,只需发布​​代码,您就可以从以下链接中找到XMLDictionary类nicklockwood/XMLDictionary

#import "XMLDictionary.h"

 NSString *filePath = [[NSBundle mainBundle] pathForResource:@"EDUCountry" ofType:@"xml"];
 NSDictionary *xmlDoc = [NSDictionary dictionaryWithXMLFile:filePath];
 NSLog(@"xmlDOC=%@",xmlDoc);
 NSArray *arr=[xmlDoc valueForKey:@"Country"];
 NSLog(@"Country Name and code=%@",[arr objectAtIndex:4]); 

答案 2 :(得分:0)

您可以使用NSXmlParser

解析此xml

使用以下方法:

  1. didStartElement

  2. foundCharacters

  3. 您可以在CountryId

    中获得attributeDict
    Swift code:
    
    didStartElement方法中的

    currentElement = elementName // currentElement is global variable which store the current element name 
    if elementName == "Country"
    {
    let id = attributeDict["CountryId"] as? NSString // attributeDict is parameter variable in didStartElement method
    // here you can store id in array
    }
    
      

    如果任何标记包含值,则它将调用foundCharacters方法

    在foundCharacters方法中编写以下代码,如下所示:

    if currentElement == "Country"
    {
    // store country name from here to array there is paramenter name `string` in `foundCharacters` method
    }