2012-07-26 2 views
1

두 개의 XML 파일이 있는데 그 파일과 비교하고 싶습니다.자동 서식 및 차이점 XML

문제는 xml 파일이 형식이 지정되지 않았으며 모두 한 줄에 있다는 것입니다. 내가 발견 한 일반적인 diff 도구는 자동 서식을 지정할 수 없습니다.

내가 할 수있는 도구가 있는지 궁금해. 명령 프롬프트에서 호출 할 수 있어야합니다. 또는 에는 명령 프롬프트에서 호출 할 수있는 자동 포맷터가 있으므로 나중에 diff 도구를 호출합니다.

감사합니다.

답변

1

http://tidy.sourceforge.net/은 XML을 들여 쓰기 할 수있는 훌륭한 도구이므로 쉽게 비교할 수 없습니다. MinGW MSYS (또는 Cygwin)와 GNU diff 도구의 포트가 있습니다. WinMerge는 내가 개인적으로 선호하는 훌륭한 그래픽 diff 도구입니다.

+0

명령 프롬프트에서 도구를 호출 할 수 있습니까? – formatjam

+0

명령 프롬프트 예에서 WinMerge를 호출 할 수 있지만 그래픽 창이 열립니다. 커맨드 라인 만 필요하면 깔끔한 도구를 사용하여 MinGW와 함께 제공되는 GNU diff 도구 (또는 실제로는 http://unxutils.sourceforge.net/)가 MinGW보다 훨씬 간단합니다. 너는 좋아한다). – Allanrbo

+0

아니요, 파이핑에 대해 내가 말한 것을 잊어 버리십시오 :-) 그것은 아마도 diffing에 실용적이지 않을 것입니다. 그러나 깔끔한 도구를 사용하여 예를 들어 tmp1.xml 및 tmp2.xml에 저장 한 다음 diff tmp1.xml tmp2.xml에 저장할 수 있습니다. – Allanrbo

0

프로그램 xmllint 포맷과 다른 방법으로 XML을 정규화 할 것이다 명령 줄 :

xmllint --format file.xml > formatted_file.xml 

xmllint --c14n file.xml > canonicalized_file.xml 
0

사용과 같이 명령 줄에 깔끔한 DIFF :

diff <(tidy -q -xml file1.xml) <(tidy -q -xml file2.xml) 

당신은 할 수 있습니다 깔끔한 명령에 추가를 추가합니다.