Domanda

Sono bloccato con un codice TouchXML. Si prega di aiutare.

Ho il seguente codice per ottenere i dati da un webservice xml:

NSData *urlData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];


NSString *data = [[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding];

NSLog(@"String data: %@ \n", data);

//Do the parsing

CXMLDocument *document = [[[CXMLDocument alloc] initWithData:urlData encoding:NSUTF8StringEncoding options:0 error:&error] autorelease];  
NSLog (@"Document  :%@ \n",[document stringValue]);

I dati di stringa ha il contenuto dal servizio, ma come mai l'oggetto CXMLDocument non contiene nulla? Qualcuno mi può dire perché?

2009-12-30 18:21:59.467 MyAdvancedBlog[3425:207] String data: <?xml version="1.0" encoding="utf-8"?>

<Post xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/">
  <IdPostazione>42</IdPostazione>
  <StringID>HOANG</StringID>
  <Name>CASSA2</Name>
  <TerminalValid>true</TerminalValid>
  <NeedSession>false</NeedSession>
</Post>   

2009-12-30 18:21:59.469 MyAdvancedBlog[3425:207] Document  :(null) 
È stato utile?

Soluzione

documentazione del TouchXML dice che CXMLDocument dovrebbe agire proprio come NSXMLDocument. Così, il di riferimento per initWithData:options:error: potrebbe aiutare

Si dice che il risultato sarà nil se è successo, e error poi contenere più informazioni. E 'nil?

Si potrebbe considerare l'utilizzo di NSXMLDocument per il momento, e vedere se davvero si comportano lo stesso. Se non lo fanno, aprire un nuovo bug TouchXML.

Si potrebbe anche usare initWithXMLString:options:error: insieme a quella stringa già decodificato

.

Modifica: Ancora meglio. Ecco esempio di codice per l'utilizzo di NSXMLDocument. In teoria, dovrebbe funzionare per CXMLDocument pure.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top