XML 도구

XPath 테스터실제 문서에서 선택 결과 확인

버튼 또는 Ctrl/Cmd+Enter로 실행하세요. 입력, 바인딩, 보기를 바꾸면 다시 평가해야 합니다.

XPath 테스터

XML 입력

결과

XML과 쿼리는 이 브라우저에서 처리되며 문서를 서버로 보내지 않습니다.

ASCII 접두사를 사용하세요. 예: {"b":"urn:books"}. 원문 접두사와 달라도 됩니다.

XPath 1.0, Ctrl/Cmd+Enter로 수동 실행. JSON 스칼라 값은 문자열로 기록하여 NaN과 Infinity를 보존합니다.

결과가 오래되었습니다. 다시 평가하면 내보낼 수 있습니다.

XPath 테스터는 예제에서는 맞던 쿼리가 실제 XML 응답에서 실패할 때 유용합니다. 기본 네임스페이스, 속성 조건, 자손의 위치를 따로 살펴보면 빈 결과의 원인을 찾기 쉽습니다.

XPath 표현식을 원문에 그대로 적용합니다. XML 노드와 문자열 값을 비교할 수 있어, 공백을 먼저 정리한 문서 때문에 XPath 평가 결과가 달라지는 일을 피할 수 있습니다.

XPath 테스터가 필요한 순간

선택된 가지를 추적

XPath 테스터는 같은 제목 노드를 XML 조각, 텍스트 값, 절대 경로로 보여 줍니다. 보기만 바뀌며 원문은 그대로 남으므로 혼합 콘텐츠를 비교하기 좋습니다.

XML 트리에서 두 제목 가지를 선택해 두 결과로 추출하는 그림.

URI로 이름 연결

b를 urn:books에 연결하면 원문 접두사가 달라도 //b:book으로 검색할 수 있습니다. 이름이 같아도 다른 네임스페이스에 속하는 요소는 구별합니다.

서로 다른 네임스페이스의 같은 이름 노드 중 매핑된 그룹만 선택하는 그림.

결과를 바꾸는 세 가지 확인 사항

01

기본 네임스페이스에 별명 지정

xmlns="urn:books"가 있으면 {"b":"urn:books"}를 입력하고 //b:book을 사용하세요. //book은 네임스페이스 없는 요소만 선택합니다.

02

text()와 텍스트 보기 비교

텍스트 보기는 선택한 요소의 자손 텍스트까지 포함한 문자열 값입니다. //title/text()는 바로 아래 텍스트 노드만 선택하므로 중첩 태그가 있으면 차이가 납니다.

03

다시 실행한 결과만 저장

XML, 표현식, 매핑, 보기를 변경하면 내보내기가 비활성화됩니다. 다시 평가한 후 저장하세요. 화면은 50개씩 늘어나지만 복사와 다운로드에는 성공한 전체 결과가 들어갑니다.

선택부터 경로 검증까지

네 가지 결과 형식

노드 집합 외에 string(//title), count(//book), boolean(//missing)도 처리합니다. JSON에 형식을 기록하고 값은 문자열로 내보내므로 NaN과 Infinity가 null로 바뀌지 않습니다.

속성과 조건 추출

//book[@id="b1"]은 속성으로 요소를 고르고, //@id는 속성을 추출합니다. //book[price>15]/title은 숫자 조건입니다. 일치가 0개인 경우도 성공이며 values는 빈 배열입니다.

다시 조회 가능한 경로

같은 이름의 형제 노드에 위치 번호를 붙입니다. 네임스페이스가 있으면 local-name()과 namespace-uri()를 사용해 접두사 매핑에 의존하지 않습니다. 문서 구조가 바뀌면 위치도 달라질 수 있습니다.

지원 버전과 입력 제한

XPath 1.0 범위
XPath 테스터는 브라우저 엔진을 사용합니다. XPath 2.0/3.1, matches(), ends-with(), 변수와 XQuery는 지원하지 않습니다. namespace:: 축 결과는 브라우저 간 일치를 보장하지 않습니다.
복구 없는 XML 파싱
올바른 XML 1.0만 받으며 DTD와 외부 엔터티를 거부합니다. 인코딩 선언은 UTF-8만 허용합니다. HTML 태그를 보완하거나 텍스트 의미가 바뀌는 공백 정리를 하지 않습니다. XPath 텍스트 모델에 맞춰 인접 텍스트와 CDATA를 합칩니다. 노드 출력에서는 CDATA 표시가 이스케이프된 텍스트로 바뀔 수 있지만 문자 내용은 유지합니다.
명시적인 접두사 바인딩
JSON 키는 ASCII 접두사이고 값은 비어 있지 않은 URI여야 합니다. 빈 접두사와 xmlns는 사용할 수 없고 xml은 표준 URI 전용입니다. 원문에 비ASCII 접두사가 있어도 동일 URI의 ASCII 별명으로 조회할 수 있습니다.
동기 실행과 용량
입력 100,000자, 속성과 텍스트를 포함한 XML 노드 2,000개, 깊이 100, 표현식 2,000자, 일치 1,000개, 출력 2,000,000자까지입니다. 초과하면 전체 결과가 실패합니다. 강제 시간 제한이 없는 동기 API여서 복잡한 쿼리는 탭을 잠시 멈출 수 있습니다.
입력 및 복원 범위
붙여넣기만 제공하며 URL 가져오기, 파일 업로드, 저장 공유, 스키마 검증은 없습니다. 지우기와 예제는 미리 보기 후 적용합니다. 한 번 실행 취소하여 입력, 옵션, 결과를 함께 복원할 수 있습니다.

XPath 테스터 질문

XPath 2.0이나 3.0 함수를 지원하나요?

지원하지 않습니다. 실제 평가기는 브라우저의 XPath 1.0입니다. matches() 같은 함수는 다른 엔진이 필요하므로 표현식 오류를 XML 오류로 해석하지 마세요.

알아두면 좋은 XPath 표현식은 무엇인가요?

//book은 자손의 book 요소, //book/@id는 속성, //title/text()는 직접 텍스트를 선택합니다. count(//book)은 개수이며 기본 네임스페이스가 있으면 접두사를 바인딩해야 합니다.

XML 네임스페이스를 처리하나요?

네. {"b":"urn:books"}처럼 접두사와 URI를 JSON으로 연결하고 //b:book으로 조회합니다. XML 원문의 접두사와 같을 필요는 없지만 URI는 정확히 같아야 합니다.

속성으로 요소를 선택하려면 어떻게 하나요?

//book[@id="b1"]로 속성을 가진 요소를 선택하거나 //book/@id로 값만 얻습니다. 속성 이름은 대소문자를 구분하며 접두사 없는 속성에는 기본 네임스페이스가 적용되지 않습니다.

문자열, 숫자, 불리언도 반환할 수 있나요?

네. string(//title), count(//book), boolean(//book)을 지원합니다. 형식과 문자열 값을 저장하며 false, 빈 문자열, NaN 역시 정상 결과로 처리합니다.

예상하지 못한 결과가 나왔나요?

다음 표현식 확인하기

XPath 테스터에서 성공한 표현식을 XML 예제 및 네임스페이스 매핑과 함께 남겨 두세요. 같은 조건으로 차이를 다시 확인할 수 있습니다.