>source

xpath를 사용하여 특정 요소를 무시하고 두 개의 xml 파일을 비교하는 방법을 알려주실 수 있습니까? XMLUnit으로 할 수 있다고 생각했지만 작동하지 않는 것 같습니다.

  • 답변 # 1

    무시할 요소를 제거하여 두 파일을 동등하게 비교하는 형식으로 변환해야 합니다. 일반적으로 XSLT를 사용하여 이 작업을 수행합니다. 변환 후 XPath 2.0 함수 deep-equal()을 사용하여 결과를 비교하거나 두 문서를 표준 XML로 직렬화하고 문자 또는 바이너리 수준에서 파일을 비교할 수 있습니다.

    업데이트

    질문을 더 명확하게 설명해 주셔서 감사합니다.

    XQuery Update를 실행하여 경로 표현식으로 선택한 노드를 삭제한 다음 fn:deep-equal()을 사용하여 결과 문서를 비교하거나 표준 직렬화를 수행하고 결과 어휘 형식을 비교하여 이 작업을 수행합니다.

    XQuery 업데이트의 대안으로 xmlstarlet 또는 Saxon의 Gizmo 도구를 사용할 수 있습니다.

    하지만 비교에서 원하는 것에 따라 다를 수 있습니다. 예/아니오 답변을 원할 경우 위의 내용은 괜찮지만 차이점에 대한 세부 정보를 얻는 것이 더 어렵습니다. 차이점을 찾기 위해 고유한 쿼리를 작성하거나 DeltaXML과 같은 도구를 사용할 수 있습니다.

    문제는 내가 제공하는 xpath가 동일하지 않다는 것입니다. 매번 다를 수 있습니다

    Oasis0012022-02-15 12:24:12

    더 유익한 질문을 하면 더 유익한 답변을 얻을 수 있습니다.

    Michael Kay2022-02-15 12:24:12

    죄송합니다. 이제 완료되었습니다.

    Oasis0012022-02-15 12:24:12
  • 이전 javascript : SSJS를 사용하여 Salesforce Marketing Cloud 클라우드 페이지에서 Twilio로의 POST 요청
  • 다음 java : 화면이 잠겨 있거나 꺼져 있을 때 카메라 셔터 onkeyevent가 있는 Android 앱