5

以下のコードは、次のメッセージを出力しています。Error Domain=NSXMLParserErrorDomain Code=111 "The operation couldn’t be completed. (NSXMLParserErrorDomain error 111.)

mainUrl = [NSURL URLWithString:@"http://www.carris.pt/pt/carreiras"];
NSString *urlContents = [NSString stringWithContentsOfURL:mainUrl encoding:NSISOLatin1StringEncoding error:nil];
NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:[urlContents dataUsingEncoding:NSISOLatin1StringEncoding]];
[xmlParser parse];
NSLog(@"%@", [xmlParser parserError]);

誰にも手がかりがありますか?コードからわかるように、html は ISO-8859-1 エンコーディングを使用しています。

更新: URL を html バリデータ サイトhttp://validator.w3.org/に送信したところ、30 以上のエラーが見つかりました。エラーと関係があると思います。しかし、HPPLE で問題なく html を解析できます。

4

5 に答える 5

4

解析時に「111」(文書化されていない?) エラー コードも表示されました。XML パーサーは、XML が整形式であることを期待していることがわかります (たとえば、他のすべてを含む 1 つのルート ノード)。

于 2014-07-24T02:07:56.663 に答える
1

NSXMLParser.h参照すると、エラー コードのリストが表示されます。

NSXMLParserInternalError = 1,
NSXMLParserOutOfMemoryError = 2,
NSXMLParserDocumentStartError = 3,
NSXMLParserEmptyDocumentError = 4,
NSXMLParserPrematureDocumentEndError = 5,
NSXMLParserInvalidHexCharacterRefError = 6,
NSXMLParserInvalidDecimalCharacterRefError = 7,
NSXMLParserInvalidCharacterRefError = 8,
NSXMLParserInvalidCharacterError = 9,
NSXMLParserCharacterRefAtEOFError = 10,
NSXMLParserCharacterRefInPrologError = 11,
NSXMLParserCharacterRefInEpilogError = 12,
...

したがって、ドキュメントNSXMLParserCharacterRefInPrologErrorの「定数」セクションで定義されている のように見えます。それは言います:

NSXMLParserCharacterRefInPrologError プロローグに無効な文字が見つかりました。iOS 2.0 以降で利用できます。NSXMLParser.h で宣言されています。

于 2013-12-08T15:15:33.350 に答える
0

XML の解析中に似たような問題に遭遇しました。問題は、おそらく使用しているエンコーディングです。iOSLatin ie の代わりに UTF8 エンコードを試してください

NSString *urlContents = [NSString stringWithContentsOfURL:mainUrl encoding:NSUTF8StringEncoding error:nil];
NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:[urlContents dataUsingEncoding:NSUTF8StringEncoding]];
于 2013-12-08T15:29:17.290 に答える