我被一些TouchXML代码所困。请帮忙。

我有以下代码从XML Web服务中获取数据:

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

字符串数据确实具有来自服务的内容,但是CXMLDOcument对象如何不包含任何内容?有人可以告诉我为什么?

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) 
有帮助吗?

解决方案

touchxml的文档 这么说 CXMLDocument 应该像 NSXMLDocument. 。所以 参考 initWithData:options:error: 可能有帮助。

它说结果将是 nil 如果没有成功,并且 error 然后将包含更多信息。是吗 nil?

您可能会考虑使用 NSXMLDocument 目前,看看他们是否确实如此行事。如果没有,请用touchxml提交错误。

你也可以使用 initWithXMLString:options:error: 以及您已经解码的那个字符串。

编辑:甚至更好。这是 示例代码 用于使用 NSXMLDocument. 。从理论上讲,它应该为 CXMLDocument 也是。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top