Main Content

XML 파일 비교하기

비교 툴을 사용하여 XML 텍스트 파일 쌍을 비교할 수 있습니다. 파일 간 차이를 알아볼 수 있도록 결과가 리포트로 만들어집니다. 텍스트 비교나 계층적 XML 비교를 통해 XML 파일을 비교할 수 있습니다.

현재 폴더 브라우저나 비교 툴에서, 또는 프로그래밍 방식으로 visdiff 함수를 사용하여 XML 비교 툴에 액세스할 수 있습니다.

XML 비교는 다음 논문에 설명된 “차와데(Chawathe)” 알고리즘을 사용하여 파일을 비교합니다.

Change Detection in Hierarchically Structured Information, Sudarshan Chawathe, Anand Rajaraman, and Jennifer Widom; SIGMOD Conference, Montreal, Canada, June 1996, pp. 493-504.

이 학술 논문은 1995년 발표된 연구 결과에서 발췌한 것입니다. http://dbpubs.stanford.edu:8090/pub/1995-45를 참조하십시오.

XML 비교 리포트는 비교 툴에 표시됩니다. 비교 툴에 대한 자세한 내용은 파일과 폴더 비교하기 및 파일 병합하기 항목을 참조하십시오.

XML 비교 리포트에서는 두 XML 파일에서 서로 다른 부분이 계층 구조로 표시됩니다. 동일한 부분은 리포트에 표시되지 않습니다.

파일이 완전히 동일하거나 줄 바꿈만 다르면 차이점이 없음을 보고하는 메시지가 표시됩니다.

참고

너무 많이 분기된 파일의 경우 분석을 통해 이전에 대응하던 부분 간의 일치점을 감지하는 것이 불가능할 수 있습니다.

차와데 분석의 변경 감지는 점수화(Scoring) 알고리즘을 기반으로 합니다. 해당 차와데 점수가 임계값보다 높으면 항목이 일치하는 것입니다. 차와데 알고리즘을 구현할 때는 임계값을 정의하는 비교 패턴을 사용합니다.

비교할 XML 파일 선택하기

현재 폴더 브라우저의 경우

현재 폴더 브라우저의 두 파일을 비교하려면 다음을 수행하십시오.

  • 두 파일이 동일한 폴더에 있는 경우 해당 파일을 선택하고 마우스 오른쪽 버튼을 클릭한 다음 선택한 파일/폴더 비교를 선택합니다.

  • 다른 폴더에 있는 두 파일을 비교하려면 다음 단계를 따르십시오.

    1. 하나의 파일을 선택하고 마우스 오른쪽 버튼을 클릭한 후 비교 대상을 선택합니다.

    2. 비교할 파일 또는 폴더 선택 대화 상자에서 비교할 두 번째 파일을 선택합니다.

    3. 비교 유형 XML 텍스트 비교를 선택합니다.

    4. 비교를 클릭합니다.

XML 비교 툴은 파일에 대해 분석을 수행한 후 비교 툴에 리포트를 표시합니다. XML 비교 툴을 열기 위해 마우스 오른쪽 버튼으로 클릭하는 파일은 리포트 오른쪽에 표시됩니다.

비교 툴을 사용하여 다른 파일 유형(예: 텍스트, MAT 또는 이진)을 비교하는 방법에 대한 자세한 내용은 파일과 폴더 비교하기 및 파일 병합하기 항목을 참조하십시오.

비교 툴에서 비교하기

MATLAB®에서 비교 툴을 사용하여 파일을 비교하려면 파일 섹션에서 비교 버튼을 선택하십시오. 대화 상자에서 비교할 파일을 선택합니다.

비교를 위해 XML 파일을 선택하고 XML 텍스트 비교를 선택하면, XML 비교 툴은 XML 파일에 대해 차와데 분석을 수행한 후 리포트를 생성합니다.

명령줄에서 비교하기

명령줄에서 XML 파일을 비교하려면 다음을 입력하십시오.

visdiff(filename1, filename2, 'xml')

여기서 filename1filename1은 XML 파일입니다.

비교 유형 변경하기

비교할 두 XML 파일을 지정할 때 현재 폴더 브라우저나 visdiff 함수를 사용한다면 비교 툴은 선택한 파일에 대해 디폴트 유형의 비교를 수행합니다. 텍스트 비교나 계층적 XML 비교를 통해 XML 파일을 비교할 수 있습니다.

비교 유형을 변경하려면 비교 툴에서 새 비교를 만들거나 현재 폴더 브라우저에서 비교 대상 옵션을 사용하십시오. 비교할 파일 또는 폴더 선택 대화 상자에서 비교 유형을 변경할 수 있습니다. XML 텍스트 비교를 선택한 후 비교를 클릭합니다.

XML비교 리포트 탐색하기

XML 비교 리포트에는 변경 사항만 표시됩니다. 이 리포트는 원 XML 데이터의 계층 구조를 보여주는 게 아니라 두 XML 텍스트 파일 간 차이점만 계층 구조로 보여줍니다.

차이점을 순차적으로 확인하려면 툴스트립에 있는 비교 탭을 사용하십시오. 다음 또는 이전 차이점 그룹으로 이동하려면 비교 탭의 탐색 섹션에서 화살표 버튼을 클릭하여 이전 또는 다음 차이점으로 이동하면 됩니다.

계층적 트리에서 항목을 클릭하여 선택할 수도 있습니다.

  • 선택한 항목은 상자에서 강조 표시됩니다.

  • 선택한 항목이 대응 쌍 중 하나이면 왼쪽 트리와 오른쪽 트리의 상자에서 강조 표시됩니다.

리포트 항목이 강조 표시된 것은 각각 다음과 같은 차이점을 나타냅니다.

리포트 항목 유형강조 표시참고
수정됨자주색

수정된 항목은 두 파일 간에 차이점이 있는 대응 쌍입니다. 수정된 항목을 선택하면 두 트리에 있는 상자에서 강조 표시됩니다.
선택한 쌍에 대해 변경된 파라미터가 아래에 표시됩니다.

삽입됨파란색

일치하지 않는 항목을 선택하면 한쪽 트리에 있는 상자에만 강조 표시됩니다.

삭제됨노란색
컨테이너없음

강조 표시가 없는 행은 다른 수정된 항목 또는 일치하지 않는 항목이 포함된 컨테이너 항목을 나타냅니다.

비교 탭에서는 다음과 같은 기능을 사용할 수 있습니다.

  • 새로 고침 — 차와데 분석을 다시 실행하여 비교 리포트를 새로 고칩니다.

  • 좌우 전환 — 좌우를 전환하고 비교를 다시 실행합니다. 차와데 분석이 다시 실행됩니다.

  • 다른 이름으로 저장 > HTML — 저장 대화 상자를 열어 XML 비교 리포트를 출력 가능한 버전으로 저장할 수 있습니다. 이 리포트는 차와데 알고리즘에 의해 감지된 차이점을 기록한 비대화형 방식 HTML 문서로, 비교 기록을 인쇄하거나 보관하는 데 사용됩니다.

  • 다른 이름으로 저장 > 작업 공간 변수 — XML 비교 결과를 작업 공간으로 내보냅니다.

  • 탐색 섹션에서 화살표 버튼을 클릭하거나 위쪽 화살표 키 또는 아래쪽 화살표 키를 눌러 이전 차이점이나 다음 차이점으로 이동합니다.

  • 선택한 파라미터 비교 — 현재 선택한 파라미터 쌍에 대한 새 리포트를 엽니다. 리포트에서 파라미터 창에 모든 세부 정보를 표시할 수 없는 경우(예: 긴 문자형 벡터 또는 스크립트)에 사용합니다.

툴스트립의 보기 탭 컨트롤에서는 다음과 같은 기능을 사용할 수 있습니다.

  • 모두 확장 — 트리의 모든 항목을 확장합니다.

    마우스 오른쪽 버튼을 클릭하여 선택한 트리 노드 내의 계층 구조를 확장하거나 축소합니다.

  • 모두 축소 — 트리의 모든 항목을 가장 간소화된 보기로 축소합니다.

참고

너무 많이 분기된 파일의 경우 분석을 통해 이전에 대응하던 부분 간의 일치점을 감지하는 것이 불가능할 수 있습니다.

비교 로그 파일을 Zip 파일로 저장하기

임시 XML 비교 파일은 tempdir/MatlabComparisons/XMLComparisons/TempDirs/에 누적됩니다. 이러한 임시 파일은 관련 비교 리포트를 닫으면 삭제됩니다.

XML 비교 시 생성된 임시 파일(예: 로그 파일)을 압축하여 공유하거나 보관할 수 있습니다. 비교 리포트를 연 상태에서 다음을 입력합니다.

xmlcomp.zipTempFiles('c:\work\myexportfolder')

대상 폴더가 존재해야 합니다. 출력값에서 다음과 같은 Zip 파일 이름을 확인할 수 있습니다.

Created the zipfile "c:\work\myexportfolder\20080915T065514w.zip"

MATLAB 편집기에서 마지막 비교에 대한 로그 파일을 보려면 다음을 입력하십시오.

xmlcomp.showLogFile

결과를 작업 공간으로 내보내기

XML 비교 결과를 MATLAB 기본 작업 공간으로 내보내려면 다음 단계를 따르십시오.

  1. 비교 탭의 비교 섹션에서 다른 이름으로 저장 > 작업 공간 변수를 선택합니다.

    입력 변수 이름 대화 상자가 나타납니다.

  2. 대화 상자에서 내보낼 객체의 이름을 지정하고 확인을 클릭합니다. 이 동작은 XML 비교 결과를 작업 공간의 xmlcomp.Edits 객체로 내보냅니다.

xmlcomp.Edits 객체에는 파일 이름, 적용된 필터, 두 XML 파일 간에 차이점이 있는 계층적 노드를 비롯하여 XML 비교에 대한 정보가 포함되어 있습니다.

비교 툴을 열지 않고 명령줄에서 xmlcomp.Edits 객체를 만들려면 다음을 입력하십시오.

Edits = xmlcomp.compare(a.xml,b.xml) 

xmlcomp.Edits의 속성설명
Filters필터 구조체형 배열로 구성된 배열. 각 구조체에는 두 개의 필드, 즉 Name 필드와 Value 필드가 있습니다.
LeftFileNameXML로 내보낸 왼쪽 파일의 파일 이름
LeftRoot왼쪽 트리의 루트를 참조하는 xmlcomp.Node 객체
RightFileNameXML로 내보낸 오른쪽 파일의 파일 이름
RightRoot오른쪽 트리의 루트를 참조하는 xmlcomp.Node 객체
TimeSaved결과를 작업 공간으로 내보낸 시간
Versionxmlcomp.Edits 객체의 MathWorks® 릴리스별 버전 번호
xmlcomp.Node의 속성설명
Children자식 노드에 대한 xmlcomp.Node 참조로 구성된 배열(있는 경우)
Edited부울 — Edited = true이면 노드는 삽입된 것이거나 '수정됨' 대응 쌍 중 하나입니다.
Name노드의 이름
Parameters파라미터 구조체형 배열로 구성된 배열. 각 구조체에는 두 개의 필드, 즉 Name 필드와 Value 필드가 있습니다.
Parent부모 노드에 대한 xmlcomp.Node 참조(있는 경우)
Partner일치하는 경우, Partner는 다른 트리에 있는 대응 파트너 노드에 대한 xmlcomp.Node 참조입니다. 그렇지 않은 경우에는 빈 []입니다.

관련 항목