2011-03-09 2 views
14

현재 두 개의 XML 파일을 비교하기 위해 XMLUnit 라이브러리를 사용하려고합니다. 그 중 하나 인 후보은 Java 객체 (JAXB 사용)의 코드에 의해 생성되고 다른 하나는 참조 (수정할 수 없음)입니다. 기본적으로 나는 (Jaxb와 내 자신의 클래스를 사용하여) 참조 화 XML 파일을 unserialize 한 다음 다른 파일로 다시 직렬화하고 여전히 동일한 내용을 가질 수 있다는 것을 증명하려고한다.XMLUnit - XML ​​파일 들여 쓰기가 비교에 미치는 영향

라이브러리가 필요한 서비스를 제공하는 것 같지만 생성 된 파일이 제대로 들여 쓰기되지 않은 경우 ("예쁘게 인쇄 된"버전) 비교가 실패하고 들여 쓰기가 올바르지 않은 경우에는 그렇지 않습니다. 예를 들어 후보 인이 생성되면 들여 쓰기가 발생하지 않으며, 내용이 한 줄짜리입니다.

[다른] 아이의 예상 수 노드 '3'만 있었다 '1'

너희들이 해결하기 위해 어떤 생각을 가지고 있습니까 : 여기

을 위해 XMLUnit에 의해 생성 된 오류 메시지입니다 이? 아마도 후보의 예쁜 프린트 버전을 생성하는 것이 해결책이며,이 경우 JAXB serialiser와 결합 할 생각이 있습니까? 지금 자바에 더 나은 솔루션은 내가 그것을 알고 드리겠습니다 XML 파일을 비교하는 경우 그런데

) 당신의 도움에 미리

감사합니다.

답변

19

org.custommonkey.xmlunit.XMLUnit 클래스의 속성을 설정하여 트리와 비교할 때 XMLUnit에서 사용하는 일부 제약 조건을 완화 할 수 있습니다. 귀하의 경우에는

, 당신은 아마 원하는 :

XMLUnit.setIgnoreComments(true); 
XMLUnit.setIgnoreWhitespace(true); 
XMLUnit.setIgnoreDiffBetweenTextAndCDATA(true); 

당신은 또한뿐만 아니라 도움이 setIgnoredAttributeOrder 속성을 찾을 수 있습니다.

+0

고마워요! 이것은 내 문제를 해결했다. –

0

XMLUnit 2.x에서이 작업을 수행하는 방법은 내 대답 here과 비슷한 질문을 참조하십시오.

관련 문제