我想在我的应用程序中编写一个不太复杂但很大的文件,并能够通过邮件发送它(使用 MFMailComposeViewController) 由于 NSXMLElement 和相关类未移植到 iPhone SDK,我有哪些选项可以创建 XML 文档?提前致谢。
问问题
7192 次
4 回答
2
无耻的自我推销:KSXMLWriter
于 2010-10-03T22:01:44.990 回答
2
试用适用于 iOS的开源XML 流编写器:
- 用 Objective-C 编写,单个 .h。和 .m 文件
- 一个 @protocol 用于命名空间支持,一个用于不支持
例子:
// allocate serializer
XMLWriter* xmlWriter = [[XMLWriter alloc]init];
// start writing XML elements
[xmlWriter writeStartElement:@"Root"];
[xmlWriter writeCharacters:@"Text content for root element"];
[xmlWriter writeEndElement];
// get the resulting XML string
NSString* xml = [xmlWriter toString];
这将生成以下 XML 字符串:
<Root>Text content for root element</Root>
于 2010-10-19T23:09:59.220 回答
-1
这是 NSString 构建中的作业练习。抽象地,创建一个协议,如:
@protocol XmlExport
-(NSString*)xmlElementName;
-(NSString*)xmlElementData;
-(NSDictionary*)xmlAttributes;
-(NSString*)toXML;
-(NSArray*)xmlSubElements;
@end
确保您保存的所有内容都实现了它并使用以下内容构建 XML:
-(NSString*)toXML {
NSMutableString *xmlString;
NSString *returnString;
/* Opening tag */
xmlString = [[NSMutableString alloc] initWithFormat:@"<%@", [self xmlElementName]];
for (NSString *type in [self xmlAttributes]) {
[xmlString appendFormat:@" %@=\"%@\"", type, [[self xmlAttributes] valueForKey:type]];
}
[xmlString appendString:@">"];
/* Add subelements */
for (id<XmlExport> *s in [self xmlSubElements]) {
[xmlString appendString:[s toXML]];
}
/* Data */
if ([self xmlElementData]) {
[xmlString appendString:[self xmlElementData]];
}
/* Close it up */
[xmlString appendFormat:@"</%@>", [self xmlElementName]];
/* Return immutable, free temp memory */
returnString = [NSString stringWithString:xmlString];
[xmlString release]; xmlString = nil;
return returnString;
}
于 2010-10-03T10:02:32.607 回答