TouchXML - CXMLDocument -Objekt konnte nicht initialisieren
-
22-09-2019 - |
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)
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.