2009-05-28 6 views
10

XML을 구문 분석 할 필요가 있지만 생성을 제어 할 수는 없습니다. 불행하게도 매우 엄격한 XML 아니에요과 같은 것들을 포함은 :Java에서 잘못 구성된 XML을 구문 분석하는 방법은 무엇입니까?

<mytag>This won't parse & contains an ampersand.</mytag> 

javax.xml.stream 클래스는 모든이를 좋아하지 않아, 바르게 오류 :

javax.xml.stream.XMLStreamException: ParseError at [row,col]:[149,50] 
Message: The entity name must immediately follow the '&' in the entity reference. 

어떻게 해결할 수 있습니다 이? XML을 변경할 수 없으므로 오류 허용 파서가 필요합니다.

필자가 선호하는 것은 기존 파서 코드를 너무 많이 사용하지 않는 수정입니다.

답변

6

이 유효한 XML (위 등) (당신이 식별 한대로) 다음에는 XML 파서가 그것을 처리 할 것 아니라면. 위의 엔터티 문제와 같은 오류의 범위를 아는 경우 가장 간단한 해결 방법은 엔터티를 삽입하는 등의 고정 엔터티를 수정 한 다음 기존의 파서에 제공하는 것입니다.

그렇지 않으면 이러한 예외 사항에 대한 기본 지원 기능을 직접 코딩해야합니다. 지루하고 오류가 발생하기 쉬운 작업 이외의 다른 작업이라고 나는 믿을 수 없습니다.

+0

+1 직접 코딩하는 경우. 대부분의 경우에는 나쁜 생각 일 수 있지만 매우 간단한 경우 고려할 가치가 있습니다. – xdhmoore

1

JSoup이 잘못 구성된 XML을 처리 할 수 ​​있다고 생각합니다.

관련 문제