XML 정렬하는 방법
- XML을 붙여넣거나,
.xml파일을 편집기에 끌어다 놓거나, URL에서 불러옵니다. - 포맷을 클릭(또는 Ctrl+Enter)하고 들여쓰기를 선택합니다. 압축은 요소 사이의 공백을 제거합니다.
- XML 형식이 올바르지 않으면 오류 상자에 줄, 열, 원인이 표시되고 해당 줄이 강조됩니다. 오류를 고친 뒤 결과를 복사하거나 다운로드하세요.
XML 포맷터의 기능
- 보기 좋게 정렬(Pretty print) – 모든 요소를 한 줄에 하나씩 배치하고 공백 2칸·4칸 또는 탭으로 들여씁니다.
- 데이터는 그대로 – 텍스트, 속성 값,
&, 같은 엔티티는 원본과 똑같이 기록되며, 요소 사이의 공백만 바뀝니다. - 혼합 콘텐츠 보존 –
<p>Hello <b>world</b></p>처럼 텍스트와 마크업이 섞인 요소와xml:space="preserve"속성이 있는 요소는 손대지 않습니다. - 나머지도 모두 유지 – XML 선언, DOCTYPE, 주석, CDATA 섹션, 처리 명령이 제자리에 남습니다.
- 옵션 – 빈 요소를
<a/>형태로 축약하거나, 주석을 제거하거나, 문서 전체를 압축할 수 있습니다. - 통계 – 크기, 요소·속성 개수, 중첩 깊이를 보여 줍니다.
XML 형식 오류의 흔한 원인
| 문제 | 예시 | 해결 방법 |
|---|---|---|
| 태그 순서가 잘못됨 | <b><i>text</b></i> | 안쪽 요소를 먼저 닫기: </i></b> |
| 이스케이프되지 않은 앰퍼샌드(&) | AT&T | AT&T 형태로 작성 |
| 이스케이프되지 않은 부등호(<) | a < b | a < b 형태로 작성하거나 CDATA 사용 |
| 따옴표 없는 속성 값 | <item id=7> | <item id="7"> |
| 루트 요소가 두 개 | <a/><b/> | 하나의 부모 요소로 감싸기 |
| HTML 엔티티 | , © |  , © 같은 문자 참조를 쓰거나 DTD에 선언 |
명령줄과 코드에서 XML 정렬하기
- Linux·macOS:
xmllint --format file.xml - Python:
xml.dom.minidom.parseString(text).toprettyxml(indent=" ") - C#:
XDocument.Parse(text).ToString() - Java:
OutputKeys.INDENT값을yes로 설정한 XSLT 항등 변환(identity transform) - VS Code: XML 확장을 설치한 뒤 문서 서식(Format Document) 명령 실행
왜 Online XML Formatter인가요?
- 무료모든 도구를 사용 제한, 계정, 워터마크 없이 무료로 이용할 수 있습니다.
- 개인정보 보호모든 처리는 브라우저에서 로컬로 이루어집니다. 파일은 절대 업로드되지 않습니다.
- 빠른 속도페이지가 가벼워 어떤 기기에서든 바로 로드됩니다.
- 어디서나 사용 가능Windows, macOS, Linux, Android, iPhone에서 사용할 수 있습니다.
자주 묻는 질문
XML이 서버에 업로드되나요?
아니요. 정렬과 검증은 브라우저에서 실행됩니다. URL 불러오기만 서버를 거쳐 파일을 가져오는데, 브라우저가 다른 사이트에서의 직접 다운로드를 대부분 차단하기 때문입니다. 내용은 그대로 전달될 뿐 저장되지 않습니다.
정렬하면 데이터가 바뀌나요?
아니요. 요소 사이의 공백만 바뀝니다. 텍스트, 속성 값, 엔티티, CDATA 섹션, 주석은 작성한 그대로 유지되며, 혼합 콘텐츠가 있는 요소는 손대지 않습니다.
Well-formed XML과 유효한(valid) XML의 차이는 무엇인가요?
Well-formed(올바른 형식의) XML은 문법 규칙을 지킨 XML입니다. 루트 요소가 하나이고, 태그가 올바르게 중첩되어 닫혀 있으며, 속성 값은 따옴표로 감싸고 특수 문자는 이스케이프되어 있어야 합니다. 유효한(valid) XML은 여기에 더해 스키마(XSD)나 DTD와도 일치합니다. 이 도구는 well-formed 여부를 검사합니다.
아주 큰 XML 파일도 정렬할 수 있나요?
네. 레코드 20,000개가 든 2.6 MB 파일도 1초도 안 되어 파싱·정렬되며, 편집기는 화면에 보이는 줄에만 줄 번호를 그리므로 빠른 반응 속도가 유지됩니다.