0

在我的 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");
}
4

2 回答 2

1

我发现 XML 的问题是什么......创建 XML 时,它应该保存为没有 BOM 的 UTF-8 ......这就是问题所在。做完这个问题就解决了

于 2012-09-30T11:57:32.197 回答
0

试试这个方法(委托方法的一部分)

- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError
{
    NSLog(@"Error = %@", parseError);
}

我在 iOS 6 上遇到了一个错误,但在 iOS 5 上没有,但收到了一条错误消息,它说解析有问题。(错误域 = NSXMLParserErrorDomain 代码 = 9“操作无法完成。(NSXMLParserErrorDomain 错误 9。)”)。

您可以在这里检查错误代码:http: //developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSXMLParser_Class/Reference/Reference.html

我仍在试图找出我自己的问题,但这条线可能会帮助你朝着正确的方向前进。

希望你解决!

于 2012-10-03T12:50:58.383 回答