NSXMLParser로 일부 HTML을 구문 분석 중이며 앰퍼샌드가 발생할 때마다 파서 오류가 발생합니다. 내가 구문 분석하기 전에 앰퍼샌드를 걸러 낼 수는 있지만 필자는 거기에있는 모든 것을 구문 분석하려고합니다.NSXMLParser는 앰퍼샌드에서 &
오류 68, NSXMLParserNAMERequiredError : Name이 필요합니다.
가장 좋은 추측은 문자 집합 문제라는 것입니다. 나는 캐릭터 세트의 세계에서 조금 퍼지기 때문에, 내 무지가 나를 엉덩이에 물고 있다고 생각하고있다. 소스 HTML은 문자 집합 ISO-8859-1을 사용, 그래서 파서 초기화하는 코드를 사용하고 있습니다 :
NSString *dataString = [[[NSString alloc] initWithData:data encoding:NSISOLatin1StringEncoding] autorelease];
NSData *dataEncoded = [[dataString dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES] autorelease];
NSXMLParser *theParser = [[NSXMLParser alloc] initWithData:dataEncoded];
어떤 아이디어?
XML 파서? 어떻게 그 일이 계속 될 것입니까? 어쨌든, 노출되지 않은 앰퍼샌드는 HTML과 XML 모두에서 유효하지 않으므로 실제 깨진 HTML에 대한 파서를 찾아야합니다. 이는 XML 구문 분석보다 훨씬 더 어려운 작업입니다. – bobince