objective-c Xml常用操作

1.创建XML文件

//创建XML文件
- (NSXMLDocument *)createXMLDocument:(NSString *)rootName{
	NSLog(@"%@ with rootName %@", NSStringFromSelector(_cmd), rootName);
	NSXMLElement *root = (NSXMLElement *)[NSXMLNode elementWithName:rootName];
	[root addAttribute:[NSXMLNode attributeWithName:@"version" stringValue:@"1.0"]];
	NSXMLDocument *xmlDoc = [[NSXMLDocument alloc] initWithRootElement:root];
	[xmlDoc setVersion:@"1.0"];
	[xmlDoc setCharacterEncoding:@"UTF-8"];
	[xmlDoc setRootElement:root];
	
	return [xmlDoc autorelease];
}

2. 装载XML文件

- (NSXMLDocument *)loadXMLDocument:(NSString *)xmlFilePath{
	assert(xmlFilePath);
	NSXMLDocument *xmlDoc = nil;
	NSError *error = nil;
	@try {
		NSURL *fileURL = [NSURL fileURLWithPath:xmlFilePath];
		if (fileURL == nil) {
			return nil;
		}
		xmlDoc = [[NSXMLDocument alloc] initWithContentsOfURL:fileURL options:NSXMLDocumentTidyXML error:&error];
	}
	@catch (NSException * e) {
		
	}
	@finally {
		return [xmlDoc autorelease];
	}
}

3. 保存XML文件

- (BOOL) saveXMLFile:(NSString *)destPath :(NSXMLDocument *)xmlDoucment{
	if (xmlDoucment == nil) {
		return NO;
	}
	
	if ( ! [[NSFileManager defaultManager] fileExistsAtPath:destPath]) {
		if ( ! [[NSFileManager defaultManager] createFileAtPath:destPath contents:nil attributes:nil]){
			return NO;
		}
	}

    NSData *xmlData = [xmlDoucment XMLDataWithOptions:NSXMLNodePrettyPrint]; 
    if (![xmlData writeToFile:destPath atomically:YES]) {
        NSLog(@"Could not write document out...");
        return NO;
    }
	
	return YES;
}

4. 生成CData节点

- (NSXMLNode *)generateCDataNode:(NSString *)value {
	NSXMLNode *cdataNode = [[NSXMLNode alloc] initWithKind:NSXMLTextKind options:NSXMLNodeIsCDATA];
	[cdataNode setStringValue:value];
	
	return [cdataNode autorelease];
}

可以像下面这样使用:
NSXMLElement *urlNode = [NSXMLElement elementWithName:@"Setting"];
	NSXMLNode *cdataNode = [self generateCDataNode:dmgFileName];
	[urlNode addAttribute:[NSXMLNode attributeWithName:@"name" stringValue:name]];
	[urlNode addAttribute:[NSXMLNode attributeWithName:@"type" stringValue:type]];
	[urlNode addChild:cdataNode];

生成的Xml节点如下:

<Setting name="OutputFileName" type="string"><![CDATA[mac-data-recovery_full737.dmg]]></Setting>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值