GDataXMLNode解析xml文件

GitHub地址

pod 'GDataXML-HTML'

解析kml
  1. 读取文件并解析成GDataXMLDocument
//  1.加载XML数据
GDataXMLDocument *XMLDocument = [[GDataXMLDocument alloc] initWithData:[NSData dataWithContentsOfFile:kmlPath] error:nil];
  1. 获取根元素并获取根元素的属性:
//  拿到XML文件中根元素下需要解析的子元素数组
NSArray *rootArr = [XMLDocument.rootElement elementsForName:@"Folder"];
  1. 获取根元素下面的子元素
//  获取根元素下面的子元素(子元素以数组方式存在的)
NSArray *documentArr = [rootArr[0] elementsForName:@"Document"];
for (GDataXMLElement *pointElement in documentArr) {
    //获取name节点的值
    NSString *name = [[[pointElement elementsForName:@"name"] objectAtIndex:0] stringValue];
    JYLog(@"%@",name);
}


//  获取根元素下面的子元素(子元素以字符存在的)
GDataXMLNode *rootCountNode=[rootElement attributeForName:@"name"];//获取根元素的某个属性,这里是获取count属性
NSString *count=[rootArr[0] stringValue];//获取属性的值,NSString格式的

  1. 在根元素下面添加子元素(添加操作):
   // 修改主节点属性
    GDataXMLElement *rootBook = [document.rootElement elementsForName:@"Document"].firstObject;
    [rootBook addAttribute:[GDataXMLNode attributeWithName:@"xmlns" stringValue:@"http://earth.google.com/kml/2.1"]];
    // 修改颜色节点属性
    NSArray *booksArr = [[document.rootElement elementsForName:@"Document"].firstObject elementsForName:@"Style"];
    GDataXMLElement *book1 = booksArr[0];
    [book1 addAttribute:[GDataXMLNode attributeWithName:@"id" stringValue:@"yellow"]];
    GDataXMLElement *book2 = booksArr[1];
    [book2 addAttribute:[GDataXMLNode attributeWithName:@"id" stringValue:@"pink"]];
    GDataXMLElement *book3 = booksArr[2];
    [book3 addAttribute:[GDataXMLNode attributeWithName:@"id" stringValue:@"red"]];
    GDataXMLElement *book4 = booksArr[3];
    [book4 addAttribute:[GDataXMLNode attributeWithName:@"id" stringValue:@"blue"]];
    GDataXMLElement *book5 = booksArr[4];
    [book5 addAttribute:[GDataXMLNode attributeWithName:@"id" stringValue:@"grn"]];
    GDataXMLElement *book6 = booksArr[5];
    [book6 addAttribute:[GDataXMLNode attributeWithName:@"id" stringValue:@"ltblu"]];

5。 保存修改后的xml元素(对xml文件进行增、删、改操作后保存修改后的xml文件,如果不保存则修改后文件内容不能反映到xml文件中)

    // 存储xml文件
    NSMutableData *mutableData = [NSMutableData data];
    [mutableData appendData:[document XMLData]];
    [mutableData writeToFile:xmlPath atomically:YES];

你可能感兴趣的:(GDataXMLNode解析xml文件)