선 길이 허용 XML 차이


13

나는 이 질문에 대한 답을 보았지만 불행히도 그 어느 것도 나를 도와주지 못했습니다.

덤불을 두드리지 말고 깊이있는 C #의 두 번째 버전은 이제 복사 편집 중입니다. 복사 편집기가 실제로 수행 한 작업을 쉽게보고 싶어서 변경 사항을 거부하거나 수락 할 수 있습니다.

우리는 수정 된 형태의 docbook을 사용하고 있지만, 원시 XML 소스를 살펴보면 충분합니다. 복사 편집기가 변경되면 줄 바꿈이 변경 될 수 있다는 점을 제외하고는 지금까지는 괜찮습니다. 그래서 읽었던 것 :

<para>Foo bar baz
 second line</para>

이제 읽습니다

<para>Foo bar grontle
 baz second line</para>

이제 진짜 여기 변화는 "grontle"의 삽입이다. 나는 "baz"가 첫 번째 줄에서 두 번째 줄로 이동 한 것을 신경 쓰지 않지만 내가 본 모든 diff 도구는 그렇게합니다.

하나의 옵션은 전체 문서 (또는 전체 단락)를 한 줄로 다시 포맷하는 것입니다 ...하지만 diff 도구는 표시 할 때 줄 바꿈되지 않기 때문에 실제로 읽기가 어렵습니다.

나는 내가 가진 도구로 관리 할 수 있다고 확신 하지만, 누군가가 더 나은 것을 알고 있다면 그것에 대해 듣고 기뻐할 것입니다. 내 출판사들도 그렇게 생각합니다.

(Windows 태그를 Windows에서 사용할 수 있어야했기 때문에 여기에 Windows 태그를 포함 시켰습니다. Windows 이외의 소프트웨어에 대해서도 듣고 싶지만 Windows에서 태그 를 작성하는 데 도움을 줄 수있는 경우에 한합니다.

답변:


9

같은 외모 SourceGear DiffMerge는 그 룰 XML에 대한 지원 (다른 언어의 많은), 당신이를 줄 것이다. 예제는 물론 실제 프로그램을 단순화하기 때문에 모든 문제가 해결되는지 확실하지 않습니다. 나는 조금 더 복잡한 변화를 시도했지만 그것들도 잘 작동하는 것 같습니다.

설명한 diff에 대해서는 아래 샘플을 참조하십시오.

간단한 차이


1
방금 실제 파일을 살펴 보았고 완벽하게 작동하는 것처럼 보입니다. 너무 감사합니다 !
Jon Skeet

4

내 솔루션은 비교할 수 없습니다 . (보다 강력한 도구)

그래서 우리는 문제를보고 시작합니다.

여기에 이미지 설명을 입력하십시오

BC는 특별한 XML 파싱 역할을 가지고있다 : (이미 XML 역할을 가지고 있지만 사전 분석을하지는 않음- 분류 및 정리 됨 )

여기에 이미지 설명을 입력하십시오

http://www.scootersoftware.com/download.php?zz=kb_moreformats_alt 로 이동 하십시오.

여기에 이미지 설명을 입력하십시오

그리고 지금 -

여기에 이미지 설명을 입력하십시오

다음 C # 버전에 사용할 수 있기를 바랍니다.

ps 그림의 텍스트가 너무 작은 경우 그림을 클릭하여 원본을로드하십시오.


Btw " Namir.78 "은 무슨 뜻입니까?
Pacerier


0

얼마 전 같은 회사에서 같은 문제가 발생했습니다. 그들은 진정한 "XML의 차이"를 찾고자했으며 완벽한 솔루션이없는 것 같습니다.

가장 쉬운 해결책은 XML에서 예쁜 인쇄 스크립트 를 먼저 실행 하여 줄 끝과 간격을 표준화 한 다음 선택한 diff 도구를 실행하는 것입니다 ( WinMerge 는 Windows에 적합합니다). 이것은 대부분의 difftools가 XML에서 당신에게 던질 많은 flotsam을 떨어 뜨리고 실제로 스크립트를 작성하는 것이 쉽습니다.


문제는 XML이 이미 있다는 것입니다 되어 효과적으로 꽤 - 인쇄 -이 라인이 싸여 변경 삽입과 삭제를합니다. 다른 줄의 끝에서 발생하는 단어를 기반으로 한 파일을 다시 포맷 할 무언가가 필요한지 궁금합니다. (
Jon Skeet

0

SD Smart Differencer 는 실제 레이아웃이 아닌 구조 를 기반으로 문서를 비교 합니다.

XML Smart Differencer가 있습니다. XML의 경우 이는 태그와 내용의 일치 순서를 의미합니다. 지정한 특정 조각의 텍스트 문자열이 다릅니다. (현재 공백이 정규화 된 것과 비교되는 텍스트의 XML 개념을 이해하지 못하지만 크게 손상되지는 않을 것입니다).


0

@ Jon Skeet : 당신은 당신의 질문에서 diff 도구가 표시 될 때 줄 바꿈하지 않는다고 언급했습니다.
vimdiff(를 통해 Windows에서도 사용 가능 gvim)를 사용하면 표시된 xml 파일을로 랩핑 할 수 있습니다 :window set wrap. 참조 링크 .
또한 :diffupdatediff를 새로 고치기 위해 실행할 수 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.