2011-04-28 9 views
2

은 내가 SAX XML 파서에 문제가 있습니다. 분명히 유효하지 않은 xml 파일을 구문 분석하고 싶습니다. (ExpatParser $ ParseException : 행 5, 열 169 : 형식이 올바르지 않습니다 (토큰이 유효하지 않습니다)). 무엇이 잘못 되었는가를 안다. 그러나 XML 파일은 나에 의해 만들어지지 않는다 ... 그래서 나는 그것을 바꿀 수 없다.핸들 SAX의의 ParserException

지금 내의 DefaultHandler에 그 오류를 처리합니다. 그러나 error()도 fatalError()도 warning()도 호출되지 않습니다 ...

어떻게 든 파싱 프로세스를 중단하고 파서에 잘못된 xml 부분에 대한 처리를 알려주고 파싱을 계속할 수 있습니까 ???

덕분에, JPM

+0

내가 당신이라면 난 당신이 SAX 파서 이전에 XML을 통과 정리 코드의 일종 프랑수아 ... 또는 3 초 모두를 데리고 때문에 모든 가능한 경우 이미 XML를 해결하기 위해 소스를 말할 것 사소한 구문 오류가 있습니다. 내가이 –

+0

정확히 같은 문제 .... http://stackoverflow.com/questions/5673423/saxparser-fails-when-responce-contains-hindi-or-other-special-characters –

+0

이 생명처럼 조금을주고있다 레몬; SAX Parser는 사과 주스를 레몬으로 만들 수 없습니다. 기록을 위해 이것은 당신에게 레몬을주는 사람에게 적절한 대답입니다 : "나는 너의 망할 레몬을 원하지 않는다! 도대체이게 뭐야?! 인생의 매니저를 만나러 간다! 케이브 존슨 레몬을 줘! 내가 누군지 알아? 너 집을 태워 버릴 남자 야! 레몬 들아! 내 엔지니어들이 너의 집을 불타 버릴 수있는 가연성 레몬을 만들거야! " (포탈 2) –

답변

1

나는이에서는 SAXParseException는 SAX 파서는 복구 할 수없는 fatal error이라고 생각합니다. 이 경우에는 (로버트가 그의 코멘트에서 제안한 것처럼) 파싱을 시도하기 전에 나쁜 태그를 수정해야 할 것이다.

당신은 XML, 예를 들어,의 알려진 불량을 해결하기 위해 자바 정규식을 사용하여 조사 할 수 있습니다
기록을 위해 Regex for quoting unquoted XML attributes

, 나는 regex to actually parse XML를 사용하여 옹호 하지이다!

+0

덕분에 내가 그렇게 할 것입니다 댄 로버트, 는 것 같아요. xml은 매우 간단하기 때문에 수동으로 파싱 할 수 있습니다. 먼저 다른 것을 먼저 사용해야합니다. 하지만 그 방법 중 하나가 내 문제를 해결할 것이라고 생각합니다. xml :-)을 수정하기 위해 2 초를 투자 할 수있는 소스를 얻을 수 있기를 바랍니다. 감사합니다. JPM – jpm