我遇到了一些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)
答案 0 :(得分:2)
TouchXML's documentation说CXMLDocument
应该像NSXMLDocument
一样行事。因此,reference for initWithData:options:error:
可能有所帮助。
它表示如果结果不成功,结果将为nil
,然后error
将包含更多信息。是nil
吗?
您可以考虑暂时使用NSXMLDocument
,看看他们是否确实采取了同样的行动。如果他们不这样做,请提交TouchXML的错误。
您还可以使用 initWithXMLString:options:error:
以及已解码的字符串。
编辑:更好。这是使用NSXMLDocument
的{{3}}。从理论上讲,它也适用于CXMLDocument
。