在我的iOS应用程序中,我试图使用NSXMLParser解析下面的xml。我可以在iOS5中成功解析这个xml但在iOS6中解析器没有进入parserdidStartElement。在iOS6中,成功调用了parserDidStartDocument但没有进入任何其他解析器委托方法.. xml格式有问题吗?我该如何解决这个问题..
<RESULTS>
<ROW>
<COLUMN NAME="NAME">Test1</COLUMN>
<COLUMN NAME="ANAME">testing xml1</COLUMN>
<COLUMN NAME="PHONE">4470111</COLUMN>
<COLUMN NAME="REMARKS"/>
<COLUMN NAME="XCOORD_DMS">227901.58873387</COLUMN>
<COLUMN NAME="YCOORD_DMS">391872.68493206</COLUMN>
<COLUMN NAME="XCOORD_WGS">51.49367618</COLUMN>
<COLUMN NAME="YCOORD_WGS">25.27912682</COLUMN>
</ROW>
<ROW>
<COLUMN NAME="NAME">Test2</COLUMN>
<COLUMN NAME="ANAME">testing xml2</COLUMN>
<COLUMN NAME="PHONE">4258444</COLUMN>
<COLUMN NAME="REMARKS"/>
<COLUMN NAME="XCOORD_DMS">229608.71442946</COLUMN>
<COLUMN NAME="YCOORD_DMS">386848.18818915</COLUMN>
<COLUMN NAME="XCOORD_WGS">51.51051535</COLUMN>
<COLUMN NAME="YCOORD_WGS">25.23373805</COLUMN>
</ROW>
</RESULTS>
这是代码..
- (void) initView:(JsonObject *) pageMenu{
appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
NSURL* url = [NSURL URLWithString:@"http://www.test.in/test.xml"];
NSXMLParser* parser = [[NSXMLParser alloc] initWithContentsOfURL:url];
[parser setDelegate:self];
[parser parse];
[parser release];
}
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName
attributes:(NSDictionary *)attributeDict{
NSLog (@"I have started");
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName{
NSLog (@"I have started");
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
NSLog (@"I have started");
}
-(void) parserDidStartDocument:(NSXMLParser *)parser {
NSLog (@"I have started");
}
-(void) parserDidEndDocument: (NSXMLParser *)parser {
NSLog (@"I have started");
}
答案 0 :(得分:1)
我发现XML存在什么问题...在创建XML时,应该将其保存为UTF-8而不使用BOM ..这就是问题所在。完成此问题后,修复
答案 1 :(得分:0)
尝试此方法(委托方法的一部分)
- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError
{
NSLog(@"Error = %@", parseError);
}
我在iOS 6上遇到了错误但在iOS 5上没有,但是收到了一条错误消息,其中说解析时出现了问题。 (错误域= NSXMLParserErrorDomain代码= 9“无法完成操作。(NSXMLParserErrorDomain错误9.)”)。
我仍然试图弄清楚我自己的问题,但这条线可能会帮助你朝着正确的方向前进。
希望你解决它!