도구
KO

XPath 테스터 – 온라인 XPath 테스트

XPath 표현식을 입력하면 바로 결과를 볼 수 있습니다: 일치하는 요소, 속성, 텍스트 또는 표현식이 반환하는 숫자, 문자열, 불리언 값. 테스터는 브라우저에 내장된 XPath 1.0 엔진으로 실행됩니다.

예시 – 클릭해서 실행해 보세요:

    개인정보 보호: 데이터는 브라우저에서만 처리되며 절대 업로드되지 않습니다.

    XPath 표현식 테스트 방법

    1. XML을 붙여넣거나, 파일을 열거나, 샘플 상품 카탈로그를 사용합니다.
    2. XPath 표현식을 입력하거나 예시 중 하나를 클릭합니다. 입력하는 대로 결과가 갱신되며, Enter 키를 누르면 즉시 실행됩니다.
    3. 결과를 확인합니다: 일치하는 노드의 개수와 각 노드의 유형·내용, 또는 표현식이 반환하는 숫자, 문자열, 불리언 값이 표시됩니다.

    XPath 문법 치트 시트

    표현식선택 대상
    /catalog루트 요소 catalog
    //product깊이에 상관없이 모든 product 요소
    /catalog/product/name루트부터 단계별로 내려간 각 상품의 name
    //product/@id모든 상품의 id 속성
    //product[@category='books']category 속성이 books인 상품
    //product[price > 20]가격이 20보다 큰 상품(숫자로 비교)
    //product[contains(name, 'USB')]이름에 “USB”가 들어간 상품(대소문자 구분)
    //product[not(tags)]tags 하위 요소가 없는 상품
    (//product)[1]문서 전체에서 첫 번째 상품
    //product[1]각 부모 요소 안의 첫 번째 상품
    //product[last()]각 부모 요소 안의 마지막 상품
    //name/text()name 안의 텍스트 노드
    //price/..각 price의 부모 요소
    //*[local-name()='product']네임스페이스와 관계없이 모든 product 요소
    count(//product)상품 개수
    sum(//price)모든 가격의 합계
    string(//product[1]/name)첫 번째 상품 이름(문자열)

    XPath의 네임스페이스

    XPath 1.0에는 기본 네임스페이스 개념이 없습니다. 사이트맵이나 NF-e 인보이스처럼 xmlns="…" 선언이 있는 문서에서는 요소가 그 네임스페이스에 속하므로 //url 표현식으로는 아무것도 찾을 수 없습니다. 그래서 테스터는 기본 네임스페이스를 x: 접두사에 연결하고(x 접두사가 이미 쓰이고 있으면 d:), //x:url/x:loc처럼 쓸 수 있게 합니다. CFDI 인보이스의 cfdi:처럼 문서에 선언된 접두사는 그대로 사용할 수 있습니다. 네임스페이스를 설정할 수 없는 도구에서는 //*[local-name()='url'] 형태가 어디서나 통합니다.

    자주 묻는 질문

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

    모든 브라우저와 대부분의 XML 라이브러리에 내장된 XPath 1.0을 지원합니다. matches(), lower-case(), string-join() 같은 XPath 2.0 이후의 함수는 사용할 수 없습니다.

    XPath 결과가 아무것도 나오지 않는 이유는 무엇인가요?

    가장 흔한 원인은 기본 네임스페이스(예시 아래에 표시된 x: 접두사를 사용하세요), 대소문자 차이(XPath는 대소문자를 구분합니다), 그리고 위치 번호입니다. 위치는 0이 아니라 1부터 시작합니다.

    결과는 몇 개까지 표시되나요?

    일치하는 항목은 모두 개수가 집계되며, 처음 500개는 노드 유형·내용과 함께 목록으로 표시됩니다.

    XML이 업로드되나요?

    아니요. XML 파싱과 쿼리는 브라우저에서 실행됩니다. URL에서 불러오는 경우에만 서버를 거쳐 파일을 가져옵니다.