Pregunta

estoy atascado con algo de código TouchXML. Por favor, ayuda.

Tengo el siguiente código para obtener los datos de un servicio web 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]);

Los datos de cadena tiene el contenido del servicio, pero ¿cómo es que el objeto CXMLDocument no contiene nada? Alguien me puede decir por qué?

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) 
¿Fue útil?

Solución

de TouchXML documentación dice que CXMLDocument debe actuar como NSXMLDocument. Por lo tanto, la referencia para initWithData:options:error: ayuda fuerza

.

Se dice que el resultado será nil si se trata de éxito, y error contendrá entonces más información. Es nil?

Se podría considerar el uso de NSXMLDocument por el momento, y ver si realmente actúan de la misma. Si no lo hacen, abra una incidencia en TouchXML.

También podría usar initWithXMLString:options:error: junto con la cadena que ya se descodifica

Editar: Aún mejor. Aquí es código de ejemplo para el uso de NSXMLDocument. En teoría, debería funcionar para CXMLDocument también.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top