Je veux écrire un fichier pas si compliqué mais volumineux dans mon application et pouvoir l'envoyer par mail (en utilisant MFMailComposeViewController) Puisque NSXMLElement et les classes liées ne sont pas portées au SDK iPhone quelles options ai-je pour créer des documents XML? Merci d'avance.Comment écrire des fichiers XML?
Répondre
auto-promotion éhontée: KSXMLWriter
Extrait de votre URL: "Le support iOS serait bien dans le projet." – JosephH
Cela devrait fonctionner, car je n'utilise que Foundation; Je n'ai tout simplement pas encore testé –
C'est un exercice de devoirs dans le bâtiment NSString. Abstraitement, créez un protocole comme:
@protocol XmlExport
-(NSString*)xmlElementName;
-(NSString*)xmlElementData;
-(NSDictionary*)xmlAttributes;
-(NSString*)toXML;
-(NSArray*)xmlSubElements;
@end
Assurez-vous que tout ce que vous enregistrez implémente et construire le XML avec quelque chose comme ce qui suit:
-(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;
}
La ligne release/nil est une de mes habitudes qui m'empêche d'avoir jamais problèmes de pointeur pendants. Oui, c'est inutile ici, mais le coût de la performance est très bas et l'optimiseur va probablement l'enlever. Néanmoins, c'est toujours une habitude que je recommande. –
En ce qui concerne la suppression de vos vars, voir http://iphonedevelopment.blogspot.com/2010/09/dealloc.html – TomH
Essayez la version open source XML stream writer for iOS:
- Ecrit dans Objective-C, un seul .h. et le fichier .m
- Un @protocol pour le support d'espace de nom et un pour sans
Exemple:
// 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];
Ce produit la chaîne XML suivante:
<Root>Text content for root element</Root>
Je ne suis pas en mesure de commenter la réponse de John Franklins, mais sa réponse est un échec classique car il ne s'échappe pas de XML. Toujours utiliser un sérialiseur approprié dans le code de production, ne pas essayer ce qui précède. – ThomasRS
Ce n'est pas un moyen d'écrire des données XML dans un fichier – Arsynth
Il s'agit d'un flux d'événements XML, pas d'octets. Cependant, consultez la documentation du wiki pour savoir comment afficher des octets en continu aussi. – ThomasRS
- 1. Écrire dans des fichiers groupés?
- 2. comment écrire correctement formaté xml
- 3. Comment écrire des fichiers avec des caractères UTF8 (lisibles)?
- 4. Comment écrire des données XML dans plusieurs fichiers en vérifiant la taille du fichier
- 5. Comment enregistrer au mieux des fichiers XML
- 6. Comment importer des fichiers XML dans WEKA
- 7. Écrire des fichiers sur S3 via Java
- 8. Écrire des fichiers binaires en utilisant SAS?
- 9. Gadget, écrire des données Unicode en XML
- 10. XML Split, dans des fichiers XML multiples
- 11. Comment convertir des fichiers Xml en fichiers texte 2
- 12. aide pour écrire des fichiers dans java
- 13. Lire et écrire simultanément des fichiers?
- 14. comment écrire des ensembles de données en xml dans asp.net
- 15. Lire (/ écrire) des fichiers en C#
- 16. Écrire des fichiers temporaires dans l'application iPhone
- 17. Comment utiliser System.IO.Compression pour lire/écrire des fichiers ZIP?
- 18. Comment écrire correctement des fichiers dynamiques sur un serveur FTP?
- 19. Comment lire/écrire des fichiers .sit avec Python sous Linux
- 20. Comment puis-je écrire des fichiers nommés consécutifs en Java?
- 21. Comment lire et écrire des fichiers CSV en utilisant WPF?
- 22. Comment écrire des fichiers d'en-tête pour les périphériques
- 23. Comment écrire dans des fichiers en utilisant utl_file dans Oracle
- 24. Comment écrire des fichiers GeoTIFF dans Delphi, éventuellement compressé
- 25. écrire des caractères comme '<' dans un fichier xml
- 26. Comment déterminer le bon xml à écrire
- 27. Comment écrire des fichiers extconf.rb lorsqu'une extension inclut des fichiers d'en-tête d'une autre extension?
- 28. Comment écrire dans les fichiers journaux Tomcat
- 29. Comment écrire un XSLT pour ce XML?
- 30. Comment lire et écrire plusieurs fichiers?
duplication possible de la classe [iOS XML writer class] (http://stackoverflow.com/questions/3969959/ios-xml-writer-class) – Pang