Frage

Ich bin mit einem TouchXML -Code festgefahren. Bitte helfen Sie.

Ich habe den folgenden Code, um die Daten von einem XML -Webservice zu erhalten:

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

Die String -Daten enthält den Inhalt aus dem Dienst, aber wie kommt es, dass das CXMLDocument -Objekt nichts enthält? Jemand kann mir sagen warum?

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) 
War es hilfreich?

Lösung

TouchXMLs Dokumentation sagt, dass CXMLDocument sollte sich genauso handeln wie NSXMLDocument. Also die Referenz für initWithData:options:error: könnte helfen.

Es heißt, das Ergebnis wird sein nil Wenn es erfolglos ist, und error Enthält dann weitere Informationen. Ist es nil?

Sie könnten in Betracht ziehen, zu verwenden NSXMLDocument Im Moment und sehen Sie, ob sie wirklich gleich handeln. Wenn dies nicht der Fall ist, stellen Sie einen Fehler mit TouchXML ein.

Sie könnten auch verwenden initWithXMLString:options:error: Zusammen mit dieser Saite haben Sie bereits dekodiert.

EDIT: noch besser. Hier ist Beispielcode zum Benutzen NSXMLDocument. Theoretisch sollte es für funktionieren CXMLDocument auch.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top