liminfo

XML Formatter

XML 정렬/검증/XPath 쿼리

XML Formatter 소개

XML 포매터는 XML 문서를 즉시 포맷, 최소화, 유효성 검사, XPath 쿼리 실행할 수 있는 무료 브라우저 기반 도구입니다. 원시 XML을 붙여넣고 Format 버튼을 클릭하면 구문 강조 표시와 함께 2칸 들여쓰기로 정리된 가독성 높은 구조로 변환됩니다. 태그는 파란색, 속성은 주황색, 값은 녹색으로 구분되어 표시됩니다.

XML 검증 기능은 브라우저 내장 DOMParser를 application/xml MIME 타입으로 사용하여 XML 구조의 오류를 감지합니다. 검증 실패 시 정확한 오류 메시지와 함께 줄 번호와 열 번호를 표시하여 문제 위치를 쉽게 찾을 수 있습니다. 검증 성공 시 루트 요소 이름과 총 요소 수를 표시합니다.

XPath 쿼리 기능은 브라우저의 네이티브 document.evaluate() API를 사용하여 XML 문서에 대해 XPath 표현식을 실행합니다. //item 같은 간단한 선택자부터 //node[@attr="value"] 같은 복잡한 조건까지, 일치하는 모든 노드를 구문 강조가 적용된 포맷된 XML로 표시합니다. 결과 노드 수가 항상 표시되며 개별 노드를 복사할 수 있습니다.

모든 처리는 JavaScript를 통해 브라우저 안에서만 실행됩니다. XML 콘텐츠는 서버에 전송되거나 저장되지 않습니다. 데스크톱과 모바일 모두에서 원활하게 작동하며 다크 모드를 완전히 지원합니다.

주요 기능

  • 구문 강조 표시와 함께 2칸 들여쓰기로 XML 포맷 — 태그, 속성, 값이 각각 다른 색상으로 표시
  • Minify 모드로 태그 간 모든 공백 제거 — 최소 크기의 프로덕션 페이로드 생성
  • 줄 번호와 열 번호를 포함한 상세 오류 보고로 XML 형식 유효성 검사
  • 브라우저 네이티브 XPath 엔진(document.evaluate)으로 XML 문서에 XPath 쿼리 실행
  • XPath 결과를 포맷된 XML로 표시 — 노드 수와 개별 복사 버튼 제공
  • //element, /root/*, //node[@attr] 등 자주 쓰는 XPath 표현식 예제 버튼
  • 구문 강조: 파란색 태그, 주황색 속성, 녹색 값, 보라색 엔티티, 회색 주석
  • 포맷 결과, 검증 결과, 개별 XPath 매치에 대한 원클릭 복사
  • 포맷/압축, 검증, XPath 기능의 깔끔한 탭 인터페이스
  • 100% 클라이언트 사이드 처리 — XML 데이터가 브라우저 밖으로 전송되지 않음

자주 묻는 질문

Format과 Minify의 차이는 무엇인가요?

Format은 들여쓰기와 줄 바꿈을 추가하여 XML을 사람이 읽기 쉬운 형태로 만듭니다. 디버깅이나 편집에 적합합니다. Minify는 태그 사이의 모든 공백을 제거하여 가능한 가장 작은 출력을 만듭니다. 네트워크 전송, API 페이로드, 파일 크기가 중요한 내장 설정에 적합합니다.

Validate 버튼은 무엇을 검사하나요?

브라우저 내장 DOMParser를 사용하여 XML을 application/xml로 파싱합니다. 닫히지 않은 태그, 요소 이름 불일치, 잘못된 문자, 루트 요소 누락 등 문서가 형식에 맞지 않으면 줄 번호와 열 번호를 포함한 정확한 오류 메시지를 표시합니다. 성공 시 루트 요소 이름과 총 요소 수를 보여줍니다.

XPath 쿼리 기능은 어떻게 작동하나요?

DOMParser로 XML을 파싱한 후 브라우저의 네이티브 document.evaluate() API로 XPath 표현식을 실행합니다. 일치하는 모든 노드를 순서대로 반환하며, 요소 노드는 포맷된 XML로 직렬화하여 구문 강조와 함께 표시합니다. 속성 노드는 이름="값" 쌍으로, 텍스트 노드는 텍스트 내용을 직접 표시합니다.

어떤 XPath 표현식을 사용할 수 있나요?

브라우저의 네이티브 XPath 엔진을 사용하므로 모든 유효한 XPath 1.0 표현식이 지원됩니다. 요소 선택자(//item), 속성 선택자(//item[@id]), 조건식(//item[position()=1]), 축 탐색(ancestor::div), 함수(count(), string(), contains(), starts-with()) 등이 포함됩니다. XPath 2.0+ 기능은 브라우저 엔진에서 지원되지 않습니다.

매우 큰 XML 파일도 포맷할 수 있나요?

네. 포매터는 JavaScript 문자열 연산을 사용하여 메모리 안에서 XML을 처리합니다. 도구 자체의 파일 크기 제한은 없습니다. 현대 하드웨어에서 수 메가바이트 파일도 보통 밀리초 단위로 처리됩니다.

구문 강조는 어떻게 동작하나요?

구문 강조기는 정규식 기반 파싱으로 XML 구성 요소를 식별합니다: 태그와 괄호는 파란색, 속성 이름은 주황색, 속성 값은 녹색, 엔티티 참조는 보라색, 주석은 회색, CDATA 섹션은 호박색, 텍스트 내용은 기본 텍스트 색상으로 표시됩니다. 줄 번호가 출력과 함께 표시됩니다.

유효성 검사를 통과했는데 앱에서 XML을 거부하는 이유는?

이 도구는 XML 형식 적합성만 검사합니다 — 태그가 올바르게 열리고, 닫히고, 중첩되어 있는지만 확인합니다. XSD 스키마나 DTD에 대한 유효성 검사는 수행하지 않습니다. 스키마 유효성 검사는 별도의 스키마 인식 유효성 검사기가 필요합니다.

XML 데이터가 외부로 유출되지 않나요?

네, 완전히 안전합니다. 모든 포맷, 검증, XPath 쿼리는 브라우저 탭 안에서만 이루어집니다. 어떤 데이터도 서버에 전송되지 않습니다. 도구에는 백엔드가 없으며, 명시적인 복사 버튼 동작 외의 클립보드 접근도 없습니다.