XML 파서

XML 문서를 즉시 포맷, 검증, 쿼리하세요. 최고의 속도와 프라이버시를 위해 브라우저 네이티브 API로 구동됩니다.

포맷 & 축소 XPath 쿼리 검증

XML 파서 사용 방법

1

XML 붙여넣기

XML 내용을 복사해 입력 창에 붙여넣거나, 샘플 XML 불러오기를 클릭하세요.

2

포맷 & 검증

정리는 포맷, 압축은 축소, 오류 확인은 검증을 사용하세요.

3

XPath로 쿼리

XPath 표현식을 입력하고 XPath 실행을 클릭해 특정 노드를 추출하세요.

XML이란 무엇인가요?

XML(eXtensible Markup Language)은 문서를 사람과 기계 모두 읽을 수 있는 형식으로 인코딩하는 규칙의 집합을 정의하는 마크업 언어입니다. 설정 파일, 데이터 교환(SOAP, RSS, Atom), 문서 저장에 널리 사용됩니다.

XML의 주요 기능

자기 서술적

XML은 데이터 구조를 설명하는 데 커스텀 태그를 사용해 내용과 계층을 한눈에 파악하기 쉽습니다.

플랫폼 독립적

단순 텍스트이기 때문에 XML은 호환성 문제 없이 모든 플랫폼, 프로그래밍 언어, 시스템에서 작동합니다.

확장 가능

DTD나 XML Schema를 사용해 어떤 데이터 모델에도 맞는 자신만의 태그와 문서 구조를 정의할 수 있습니다.

자주 묻는 질문

잘 구성된(well-formed) XML과 유효한(valid) XML의 차이는 무엇인가요?

잘 구성된 XML은 XML의 기본 문법 규칙(올바른 중첩, 닫는 태그, 단일 루트 요소)을 따릅니다. 유효한 XML은 잘 구성되어 있으면서 허용되는 구조와 데이터 타입을 정의하는 스키마(DTD, XSD)를 준수합니다.

이 도구는 XSD 스키마에 대해 검증하나요?

아니요, 이 도구는 잘 구성됨(문법 정확성)만 확인합니다. DTD나 XSD에 대한 스키마 기반 검증은 브라우저에서 기본적으로 지원되지 않습니다.

어떤 XPath 버전을 지원하나요?

브라우저의 네이티브 document.evaluate()는 XPath 1.0을 지원합니다. axes, predicates, contains()/text()/@attribute 같은 함수를 포함한 대부분의 일반적인 쿼리를 다룹니다.

XML 네임스페이스란 무엇이고 어떻게 읽나요?

네임스페이스는 xmlns 속성을 통해 요소 이름을 URI에 매핑합니다 - 예를 들어 atom:feed 요소가 xmlns:atom="http://www.w3.org/2005/Atom"을 선언합니다. 접두사는 임의이며 URI만이 네임스페이스를 식별하므로, 두 문서가 같은 어휘에 다른 접두사를 쓸 수 있습니다. 접두사가 다르면 XPath 매칭에 local-name() 트릭이 자주 필요한 이유입니다.

XPath는 노드를 어떻게 선택하나요?

XPath 1.0 표현식은 트리를 따라 이동합니다: /rss/channel/item는 경로로 선택하고, //item는 문서 어디서든 item를 찾고, item[@type='news']는 속성으로 필터링하고, item[1]이나 item[last()] 같은 서술어로 특정 노드를 고릅니다. XSLT와 많은 테스트 프레임워크, 그리고 이 도구의 평가기 뒤에 있는 쿼리 언어입니다.

XXE란 무엇이며 이 도구에 영향을 줄 수 있나요?

XXE(XML External Entity) 인젝션은 파일 경로나 URL을 가리키는 DTD 엔티티를 악용해 서버 측 파서가 그것을 가져오게 합니다 - 과거에는 /etc/passwd나 내부 서비스가 유출되곤 했습니다. 브라우저의 XML 파서는 외부 엔티티를 확인하지 않으며, 이 도구는 서버 왕복 없이 전적으로 브라우저에서 실행되므로 붙여넣은 XML이 파일 읽기나 SSRF를 유발할 수 없습니다.

DOM과 SAX 파싱의 차이는 무엇인가요?

DOM은 전체 문서를 트리에 로드해 무작위로 탐색할 수 있습니다 - 직관적이지만 거대한 파일에는 메모리를 많이 씁니다. SAX는 (시작 태그, 텍스트, 종료 태그) 이벤트를 한 번의 패스로 상수 메모리로 스트리밍합니다 - 빠르지만 전진 전용입니다. 브라우저 JavaScript는 DOMParser(DOM 방식)를 제공하며, JavaScript에서 스트리밍 XML은 라이브러리나 Web Streams가 필요합니다.

XML 콘텐츠 안에 < 또는 &를 포함하려면 어떻게 하나요?

일반 텍스트에서는 &lt;와 &amp;로 이스케이프하세요 - 문자 데이터에 날것의 <와 &는 불법입니다. 마크업이 많은 텍스트 블록은 CDATA 섹션으로 감싸면 끝의 ]]> 시퀀스를 만나기 전까지 이스케이프가 필요 없습니다. 콘텐츠에서 엄격히 요구되는 것은 <와 &뿐이며, >는 그 닫는 시퀀스를 만들 때만 이스케이프하면 됩니다.

{-- * External Resources Component(#18 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}