Question

Je suis coincé avec un code de TouchXML. S'il vous plaît aider.

Je le code suivant pour obtenir les données à partir d'un xml webservice:

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]);

Les données de chaîne a le contenu du service, mais comment se fait l'objet CXMLDocument ne contient rien? Quelqu'un peut-il me dire pourquoi?

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) 
Était-ce utile?

La solution

documentation de TouchXML dit que CXMLDocument devrait agir comme NSXMLDocument. Ainsi, le référence pour initWithData:options:error: pourrait aider

Il dit que le résultat sera nil si elle est infructueuse, et error alors contenir plus d'informations. Est-il nil?

Vous pouvez envisager d'utiliser NSXMLDocument pour le moment, et voir s'ils vraiment agissent de la même. Si elles ne le font pas, déposer un bug avec TouchXML.

Vous pouvez également utiliser initWithXMLString:options:error: avec cette chaîne vous avez déjà décodé

.

Edit: Mieux encore. Voici exemple de code pour l'utilisation NSXMLDocument. En théorie, cela devrait fonctionner pour CXMLDocument ainsi.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top