0

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

我有以下代码从 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]);

字符串数据确实包含来自服务的内容,但为什么 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) 
4

1 回答 1

2

TouchXML 的文档CXMLDocument应该像NSXMLDocument. 因此,参考initWithData:options:error:可能会有所帮助。

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

您可能会考虑NSXMLDocument暂时使用,看看它们是否真的表现相同。如果他们不这样做,请使用 TouchXML 提交错误。

您也可以与已解码的字符串一起使用。 initWithXMLString:options:error:

编辑:更好。这是使用的示例代码NSXMLDocument。从理论上讲,它也应该适用CXMLDocument

于 2009-12-30T18:03:39.613 回答