如何使用Objective-C中的NSXMLParser解析与使用utf-8不同的另一编码器编码的xml文件?
有没有办法使用NSXMLParser解析用windows-1254编码的xml文件?当我尝试时,didStartElement方法不被调用。如何使用Objective-C中的NSXMLParser解析与使用utf-8不同的另一编码器编码的xml文件?
代码是
NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:webData];
XMLParser *parser = [[XMLParser alloc] initXMLParser: objectList];
[parser setReqType:reqType];
[xmlParser setDelegate:parser];
[xmlParser parse];
XML是
<?xml version="1.0" encoding="windows-1254" ?>
<CANLIMACLAR>
<CANLIMACLARROWS>
<TARIH>19/10/2009 21:15</TARIH>
<TAKIM1>Union Berlin</TAKIM1>
<TAKIM2>Fürth</TAKIM2>
<SONUC1>1</SONUC1>
<SONUC2>2</SONUC2>
<DK_DURUM>Maç Sonu</DK_DURUM> ...
</CANLIMACLARROWS> ...
</CANLIMACLAR>
我从XML数据删除<?xml version="1.0" encoding="windows-1254" ?>
部分,然后我把它发送到XMLPARSER,所以没有问题了。
然而,这不是一个修复 - 问题是数据不是XML,供应商需要修复它 – Mark 2011-08-27 20:41:16
不要忘记,如果解析()不返回,您可以检查parseError看看发生了什么:
if ([parser parse] == NO)
{
NSError *error = [parser parserError];
NSString *readableMessage = [error localizedDescription];
NSLog(@"Error occurred: %@\n", readableMessage);
}
感谢您的建议,我实现了它,但我认为在“[parser parseError]”中缺少一个字符“ ,它必须是“[parser parserError]”。 – crazywood 2009-10-27 10:42:33
你是对的 - 修好了。 – 2009-10-27 14:31:33
您可以发布您的代码?也许是XML文件本身的序言? – 2009-10-23 09:16:39
NSXMLParser * xmlParser = [[NSXMLParser alloc] initWithData:webData]; XMLParser * parser = [[XMLParser alloc] initXMLParser:objectList]; [解析器setReqType:reqType]; [xmlParser setDelegate:parser]; [xmlParser parse]; - - 19/10/2009 21:15 联盟柏林 菲尔特 MAC鲜于 ... CANLIMACLARROWS> ... CANLIMACLAR> –
crazywood
2009-10-23 09:30:12