Я хочу написать не очень сложный, но большой файл в своем приложении и отправить его по почте (используя MFMailComposeViewController) Поскольку NSXMLElement и связанные классы не переносятся на iPhone SDK, какие параметры у меня есть для создания XML-документов? Спасибо заранее.Как писать файлы XML?
ответ
Shameless саморекламы: KSXMLWriter
Извлечь из вашего URL: «Поддержка iOS будет приятной в проекте». – JosephH
Он должен работать, поскольку я использую только Foundation; просто еще не протестировал его –
Это домашнее задание в здании 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;
}
Линия release/ноль - моя привычка, которая препятствует мне иметь оборванных указателей. Да, здесь здесь нет необходимости, но производительность очень низкая, и оптимизатор, скорее всего, удалит ее. Тем не менее, это по-прежнему привычка я рекомендую. –
Что касается nil'ing из ваших vars, см. Http://iphonedevelopment.blogspot.com/2010/09/dealloc.html – TomH
Попробуйте использовать с открытым кодом XML stream writer for iOS:
- Написано в 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>
Я как-то не могу комментировать ответ Джона Франклинса, но его ответ классический FAIL, так как он не убегает от XML. Всегда используйте правильный серийный номер в производственном коде, не пытайтесь сделать это выше. – ThomasRS
Это не способ записи xml-данных в файл в strem – Arsynth
Это поток XML-событий, а не байтов. Однако см. Документацию по вики, в которой также можно выводить байты. – ThomasRS
- 1. писать XML-файлы с JQuery
- 2. Как читать и писать зашифрованные XML-файлы?
- 3. Как писать огромные файлы PDF
- 4. java: писать большие файлы?
- 5. C++ - Пытается писать файлы
- 6. Где писать файлы android
- 7. Как писать в xml с помощью vbscript
- 8. QTcpSocket :: write - как писать большие файлы?
- 9. Как писать/читать двоичные файлы, представляющие объекты?
- 10. Как писать файлы с (читаемыми) символами UTF8?
- 11. Как писать файлы isilo .pdb в C#?
- 12. Как писать файлы в формате mbox?
- 13. Как читать и писать файлы csv?
- 14. Как писать или редактировать файлы Python?
- 15. Как читать/писать флеш-файлы с php?
- 16. как писать json-файлы в javascript
- 17. Как писать пользовательские файлы в Pig
- 18. Как писать (большие) файлы с Ruby Eventmachine
- 19. Как читать или писать огромные файлы Unicode?
- 20. can profilehooks, писать .prof файлы?
- 21. Программа не может писать файлы
- 22. Как читать и писать XML с Perl?
- 23. Нужно писать XML с помощью PHP - как?
- 24. Как начать писать этот XML в Java?
- 25. Как читать и писать ¬ в Xml
- 26. Как не писать DocumentRoot в XML
- 27. Как сохранить файлы XML
- 28. Как скопировать файлы XML
- 29. Как обрабатывать файлы XML
- 30. Как сравнить файлы XML
Возможный дубликат [iOS XML writer class] (http://stackoverflow.com/questions/3969959/ios-xml-writer-class) – Pang