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 に答える