Pergunta

Eu preciso carregar um arquivo .xml a partir de um endereço URL em um objeto NSData para posterior análise com algumas bibliotecas que já próprio, (mas eles me o arquivo .xml como NSData perguntar), como eu poderia fazer isso?

O formato url seria algo como isto:

http://127.0.0.1/config.xml

Foi útil?

Solução

Assumindo dados de TI da UTF-8. Se é (ou seja, dentro do pacote) algo local como:

NSError *error;
NSString* contents = [NSString stringWithContentsOfFile:PATHTOLOCALFILE 
                               encoding:NSUTF8StringEncoding
                               error:&error];
NSData* xmlData = [contents dataUsingEncoding:NSUTF8StringEncoding];

Se é em um local remoto, algo como isso deve fazê-lo. Note que é síncrona. Se você precisar de carregamento assíncrono, então você vai ter que fazer a sua própria rede ou usar algo como ASIHTTPConnection para baixar o arquivo em primeiro lugar.

NSError *error;
NSString* contents = [NSString stringWithContentsOfUrl:[NSURL URLWithString:URLOFXMLFILE] 
                               encoding:NSUTF8StringEncoding
                               error:&error];
NSData* xmlData = [contents dataUsingEncoding:NSUTF8StringEncoding];

Outras dicas

Você pode chamar de rotina NSData de - (id)initWithContentsOfURL:(NSURL *)aURL. Mais informações aqui:

http://developer.apple .com / documentation / Cacau / Referência / Fundação / Classes / NSData_Class / Referência / reference.html

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top