기본 네임스페이스에 별명 지정
xmlns="urn:books"가 있으면 {"b":"urn:books"}를 입력하고 //b:book을 사용하세요. //book은 네임스페이스 없는 요소만 선택합니다.
XML 도구
버튼 또는 Ctrl/Cmd+Enter로 실행하세요. 입력, 바인딩, 보기를 바꾸면 다시 평가해야 합니다.
XML과 쿼리는 이 브라우저에서 처리되며 문서를 서버로 보내지 않습니다.
ASCII 접두사를 사용하세요. 예: {"b":"urn:books"}. 원문 접두사와 달라도 됩니다.
XPath 1.0, Ctrl/Cmd+Enter로 수동 실행. JSON 스칼라 값은 문자열로 기록하여 NaN과 Infinity를 보존합니다.
결과가 오래되었습니다. 다시 평가하면 내보낼 수 있습니다.
XPath 테스터는 예제에서는 맞던 쿼리가 실제 XML 응답에서 실패할 때 유용합니다. 기본 네임스페이스, 속성 조건, 자손의 위치를 따로 살펴보면 빈 결과의 원인을 찾기 쉽습니다.
XPath 표현식을 원문에 그대로 적용합니다. XML 노드와 문자열 값을 비교할 수 있어, 공백을 먼저 정리한 문서 때문에 XPath 평가 결과가 달라지는 일을 피할 수 있습니다.
XPath 테스터는 같은 제목 노드를 XML 조각, 텍스트 값, 절대 경로로 보여 줍니다. 보기만 바뀌며 원문은 그대로 남으므로 혼합 콘텐츠를 비교하기 좋습니다.
b를 urn:books에 연결하면 원문 접두사가 달라도 //b:book으로 검색할 수 있습니다. 이름이 같아도 다른 네임스페이스에 속하는 요소는 구별합니다.
xmlns="urn:books"가 있으면 {"b":"urn:books"}를 입력하고 //b:book을 사용하세요. //book은 네임스페이스 없는 요소만 선택합니다.
텍스트 보기는 선택한 요소의 자손 텍스트까지 포함한 문자열 값입니다. //title/text()는 바로 아래 텍스트 노드만 선택하므로 중첩 태그가 있으면 차이가 납니다.
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입니다. matches() 같은 함수는 다른 엔진이 필요하므로 표현식 오류를 XML 오류로 해석하지 마세요.
//book은 자손의 book 요소, //book/@id는 속성, //title/text()는 직접 텍스트를 선택합니다. count(//book)은 개수이며 기본 네임스페이스가 있으면 접두사를 바인딩해야 합니다.
네. {"b":"urn:books"}처럼 접두사와 URI를 JSON으로 연결하고 //b:book으로 조회합니다. XML 원문의 접두사와 같을 필요는 없지만 URI는 정확히 같아야 합니다.
//book[@id="b1"]로 속성을 가진 요소를 선택하거나 //book/@id로 값만 얻습니다. 속성 이름은 대소문자를 구분하며 접두사 없는 속성에는 기본 네임스페이스가 적용되지 않습니다.
네. string(//title), count(//book), boolean(//book)을 지원합니다. 형식과 문자열 값을 저장하며 false, 빈 문자열, NaN 역시 정상 결과로 처리합니다.
예상하지 못한 결과가 나왔나요?