개발 도구

XML 정리·검사

들여쓰기와 압축, 닫히지 않은 태그 찾기. 트리로 구조를 보고 XPath로 값을 찾습니다.

🔒 입력한 내용과 파일은 이 브라우저 안에서만 처리합니다. 서버로 보내지 않습니다.

    XML 정리·검사 사용법

    한 줄로 붙어 있거나 들여쓰기가 흐트러진 XML을 계층이 보이게 정리하고, 문법이 틀린 곳을 찾아 주는 도구입니다. 공공데이터 API 응답, 사이트맵, RSS, SVG, 안드로이드 레이아웃이나 메이븐 설정처럼 XML로 된 파일을 들여다볼 때 씁니다.

    쓰는 순서

    1. 입력 칸에 XML을 붙여 넣거나 파일 열기로 불러옵니다. 파일을 입력 칸에 끌어다 놓아도 됩니다.
    2. 붙여 넣으면 바로 검사합니다. 문법이 맞으면 뿌리 요소 이름과 함께 요소 수, 속성 수, 가장 깊은 단계를 보여 줍니다.
    3. 정리하기는 요소마다 줄을 바꿔 들여쓰고, 한 줄로 압축은 태그 사이의 공백과 줄바꿈을 없앱니다.
    4. 결과 복사 또는 파일로 저장으로 가져갑니다.

    예시

    <목록><항목 id="1">사과</항목><항목 id="2"/></목록> 을 넣고 정리하기를 누르면 네 줄이 됩니다. 첫 줄 <목록>, 둘째 줄에 두 칸 들여쓴 <항목 id="1">사과</항목>, 셋째 줄 <항목 id="2"/>, 넷째 줄 </목록> 입니다. 글자만 든 요소는 여는 태그, 글자, 닫는 태그를 한 줄에 둡니다. 요소는 3개, 속성은 2개, 깊이는 2단계로 나옵니다.

    자주 나는 오류와 고치는 법

    안내 문구원인고치는 법
    …를 닫기 전에 다른 닫는 태그가 나왔습니다태그를 닫지 않았거나 이름을 잘못 적음. <Item> 과 </item> 처럼 대소문자가 달라도 다른 이름입니다.안내에 나온 줄의 여는 태그와 닫는 태그 이름을 맞춥니다.
    맨 바깥 요소가 두 개 이상입니다문서 전체를 감싸는 요소가 없음전체를 요소 하나로 감쌉니다.
    글자 & 나 < 가 그대로 쓰였습니다주소의 a=1&b=2, 수식의 a < b&amp;, &lt; 로 바꾸거나 CDATA로 감쌉니다.
    XML에 없는 엔티티가 쓰였습니다&nbsp; 같은 HTML 엔티티&#160; 같은 숫자 표기로 바꿉니다.
    속성 형식이 틀렸습니다width=100 처럼 따옴표 없는 값, 값 없는 속성width="100" 으로 적습니다.
    <?xml 선언은 문서 맨 처음에만선언 앞에 주석이나 다른 내용이 있음선언을 첫 줄로 옮깁니다. 앞의 빈 줄과 공백은 이 도구가 알아서 무시합니다.

    HTML은 닫는 태그를 빼먹어도 브라우저가 알아서 고쳐 주지만 XML은 한 군데만 틀려도 문서 전체를 읽지 못합니다. 그래서 오류를 한 번에 하나씩, 가장 먼저 걸리는 곳부터 알려 드립니다. 고친 뒤 다음 오류가 있으면 다시 나옵니다.

    옵션

    • 들여쓰기: 2칸, 4칸, 탭. 저장소에 올리는 파일은 프로젝트 규칙에 맞추고, 그냥 읽을 용도면 2칸이 가로로 덜 길어집니다.
    • 주석 지우기: <!-- --> 를 모두 뺍니다. 배포용으로 크기를 줄일 때 압축과 함께 씁니다.
    • 빈 요소를 <a/> 로 줄이기: <a></a> 를 <a/> 로 적습니다. XML에서는 둘이 같은 뜻입니다. 다만 XHTML을 HTML로 읽는 환경에서는 <script/>, <div/> 가 다르게 해석되니 그런 문서에는 켜지 마세요.

    트리 보기와 XPath 검색

    트리 보기 탭은 요소를 접고 펴며 구조를 살피는 화면입니다. 요소 옆에 속성과 자식 수가 나오고, 요소 이름을 누르면 그 요소를 가리키는 XPath가 복사됩니다.

    XPath 검색 탭에서는 식으로 값을 뽑습니다. 예시 버튼으로 채운 주문 문서에서 //상품/이름 은 "무선 키보드"와 "마우스 패드" 2개를 찾고, //상품[가격 > 10000]/이름 은 "무선 키보드" 하나만 찾습니다. count(//상품) 은 2, sum(//가격) 은 53000 이 나옵니다. 속성은 //상품/@코드 처럼 골뱅이표로 가리킵니다. 찾은 결과는 복사하거나 CSV로 저장할 수 있어서, 긴 XML에서 특정 값만 뽑아 엑셀로 옮길 때 편합니다. 브라우저에 든 XPath 1.0을 쓰므로 2.0 이후에 생긴 함수는 쓸 수 없습니다.

    파일 여러 개를 한 번에

    파일을 두 개 이상 고르면 지금 고른 방식(정리 또는 압축)과 옵션으로 모두 처리해 ZIP 하나로 저장합니다. 문법이 틀린 파일은 건너뛰고 목록에 이유를 적습니다.

    주의할 점

    • DTD나 XSD에 맞는지(유효성)는 검사하지 않습니다. 태그 짝과 문자 규칙 같은 문법(well-formed)만 봅니다.
    • 글자와 태그가 섞인 요소(<p>가 <b>나</b> 다</p>)는 정리하면 조각마다 줄이 나뉘어 공백이 달라집니다. 본문 글이 든 문서는 압축보다 원본 유지가 안전합니다.
    • 파일은 UTF-8로 읽습니다. EUC-KR로 저장된 오래된 XML은 한글이 깨져 보일 수 있습니다.

    자주 묻는 질문

    XML 오류 위치는 어떻게 알려 주나요?

    틀린 곳을 몇 번째 줄 몇 번째 칸인지 알려 주고 그 줄의 내용에 ^ 표시를 붙입니다. 여닫는 태그의 짝이 안 맞으면 어느 줄에서 연 태그가 문제인지도 함께 적습니다. 오류 위치로 이동 버튼을 누르면 입력 칸에서 그 자리가 선택됩니다.

    글 안에 &나 <를 쓰면 왜 오류가 나나요?

    XML에서 &와 <는 문법 기호라서 글자로 쓰려면 &amp;와 &lt;로 적어야 합니다. 주소에 들어가는 &도 마찬가지입니다. 바꾸기 번거로운 긴 글은 <![CDATA[ 와 ]]> 사이에 넣으면 그대로 쓸 수 있습니다.

    &nbsp;를 넣었더니 정의되지 않은 엔티티라고 나옵니다.

    XML이 기본으로 아는 엔티티는 &amp; &lt; &gt; &quot; &apos; 다섯 개뿐입니다. &nbsp;는 HTML의 것이어서 XML에서는 숫자 표기인 &#160;로 적어야 합니다. 다른 HTML 엔티티도 같은 방식으로 숫자 표기로 바꾸면 됩니다.

    XPath로 찾았는데 아무것도 안 나옵니다.

    뿌리 요소에 xmlns="…" 가 있는 문서(사이트맵, SVG, RSS의 일부 등)는 요소가 모두 그 네임스페이스에 속해서 //url 같은 식으로는 찾지 못합니다. //*[local-name()="url"] 처럼 이름만 비교하는 식을 쓰세요. 트리 보기에서 요소 이름을 눌러 복사한 경로는 이 형태로 만들어집니다.

    정리하면 내용이 바뀌지 않나요?

    태그와 속성, 글자는 그대로 두고 태그 사이의 줄바꿈과 들여쓰기만 바꿉니다. 글자만 든 요소는 안의 공백까지 그대로 둡니다. 다만 글자와 태그가 섞여 있는 요소는 글자 앞뒤 공백이 정리되므로, 공백이 뜻을 갖는 문서라면 결과를 확인해 주세요.

    SVG나 사이트맵 파일도 정리할 수 있나요?

    둘 다 XML이어서 그대로 쓸 수 있습니다. svg, rss, xsd, kml, gpx, plist 확장자의 파일을 열 수 있고, 파일을 여러 개 고르면 한꺼번에 처리해 ZIP으로 저장합니다.

    함께 쓰면 좋은 도구

    마지막 수정 2026-11-09. 있었으면 하는 기능이나 불편한 점은 이 도구에 건의하기로 알려 주세요.