이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 237|회답: 0

XPath를 사용해 XML, HTML 문서 콘텐츠를 검색하세요

[링크 복사]
게시됨 2025. 12. 11. 오전 9:02:59 | | | |
XPath는 HTML과 XML과 같은 트리 구조 데이터에서 필요한 정보를 정확하고 효율적으로 명시하고 추출하는 기술입니다.

XPath 개요

XPath는 XML 또는 HTML 문서 트리에서 특정 요소와 속성을 지정하고 추출하는 데 사용되는 언어입니다. 웹페이지가 종종 HTML로 구성되기 때문에, XPath는 웹 스크래핑, 데이터 검색, XML 데이터 검색 등 다양한 시나리오에서 널리 사용됩니다.

일반적인 사용법은 다음과 같습니다:

  • 웹 크롤러에서의 데이터 추출: XPath는 전자상거래 웹사이트의 제품 정보나 뉴스 웹사이트의 기사 제목과 같은 특정 데이터를 자동으로 가져오는 데 사용됩니다.
  • XML 데이터 검색 및 처리: 비즈니스 시스템 및 데이터 링크 처리에서는 데이터가 종종 XML 형식으로 교환됩니다. XPath를 사용하면 방대한 XML 데이터에서 필요한 정보를 효율적으로 추출할 수 있습니다.
  • API 응답 구문화 (XML 형식): SOAP와 같은 XML 기반 API를 사용할 때, XPath는 응답 데이터를 파싱하는 데 사용됩니다. 이를 통해 특정 상태 코드와 결과 데이터를 빠르게 얻을 수 있어 시스템 통합 및 자동 처리의 정확도를 향상시킵니다.

도구 추천

XPath를 배우고 사용하는 과정에서 일반적으로 사용되는 도구들은 다음과 같습니다:

Chrome 개발자 도구: Chrome 브라우저에 기본으로 포함된 강력한 도구로, F12 키를 눌러 호출할 수 있습니다. "요소" 패널에서는 웹 페이지 내 HTML 요소를 마우스 올리고 클릭하여 빠르게 찾을 수 있으며, 요소를 우클릭하면 XPath 표현식을 직접 복사해 쉽게 검증하고 테스트할 수 있습니다. 예를 들어, 전자상거래 제품 페이지를 분석할 때 Chrome 개발자 도구를 사용해 제품명, 가격 및 기타 요소에 대해 빠르게 XPath를 얻을 수 있습니다.
파이어폭스 개발자 도구: 브라우저에 기본으로 포함되어 있으며, 크롬 개발자 도구와 유사합니다. 또한 페이지 내 요소를 쉽게 찾을 수 있고, XPath 표현식을 보고 테스트할 수 있습니다. 이 방법은 파이어폭스 브라우저에 익숙한 개발자들에게 좋은 선택입니다.
온라인 XPath 테스트 도구: "XPath Tester"와 같은 온라인 도구는 설치 없이도 사용할 수 있으며, 웹페이지를 열어 사용할 수 있습니다. XML 또는 HTML 문서의 내용을 붙여넣고 XPath 표현식을 입력하면 실시간으로 매칭 결과를 확인할 수 있습니다. 이 도구는 초보자가 빠르게 시작하고 간단한 XPath 연습을 하기에 특히 적합합니다.
XPath 헬퍼 플러그인: 크롬 브라우저를 예로 들면, XPath 헬퍼 플러그인을 설치하면 웹 브라우징 시 브라우저 인터페이스에 플로팅 창이 추가되어 현재 마우스 오버 요소의 XPath 경로를 표시하고, 창에서 직접 XPath 표현식을 편집하고 테스트할 수 있어 개발 효율이 크게 향상됩니다.

XPath 추상 구문

노드를 선택하세요

XPath는 경로 표현식을 사용하여 XML 문서에서 노드를 선택합니다. 노드는 경로나 단계를 따라 선택됩니다. 가장 유용한 경로 표현식은 아래에 나열되어 있습니다:
묘사
노드네임이 노드의 모든 자식 노드를 선택합니다.
/루트 노드에서 선택하세요(자식 노드를 가져가세요).
//문서 내 노드를 위치와 상관없이 현재 선택된 노드에서 선택합니다(후손 노드 참조).
.현재 노드를 선택하세요.
..현재 노드의 부모 노드를 선택하세요.
@속성을 선택하세요.

아래 표에는 몇 가지 경로 식과 그 결과가 나열되어 있습니다:
경로 표현식
결과
서점서점이 명명된 모든 노드를 선택하세요.
/bookstore
루트 요소 서점(Root Element Bookstore)을 선택하세요.
참고: 경로가 앞 슬래시( / )로 시작하면 이 경로는 항상 원소로 가는 절대 경로를 나타냅니다!
서점/서적서점의 아동 요소인 모든 책 요소를 선별합니다.
//book문서 내 위치에 상관없이 모든 책의 하위 요소를 선택합니다.
서점//책서점 요소의 후손인 모든 책 요소를 선택하세요. 서점 내 위치에 상관없이 말이죠.
@langlang이 명명된 모든 속성을 선택하세요.

조건자

술어는 특정 노드나 지정된 값을 포함하는 노드를 찾는 데 사용됩니다.
술어는 대괄호 안에 포함되어 있습니다.
아래 표에는 술어가 포함된 경로 표현식과 그 결과들을 나열합니다:
경로 표현식
결과
/bookstore/book[1]서점 자식 요소에 속하는 첫 번째 책 요소를 선택하세요.
/bookstore/book[last()]서점의 하위 요소에 속하는 마지막 책 요소를 선택합니다.
/bookstore/book[last()-1]서점 어린이 요소에 속하는 마지막에서 두 번째 책 요소를 선택합니다.
/bookstore/book[position()<3]서점 요소의 자식 요소인 첫 두 가지 책 요소를 선택하세요.
제목[@lang]lang이라는 속성을 가진 모든 타이틀 요소를 선택합니다.
제목[@lang='영어']영어 값이 있는 lang 속성을 가진 모든 타이틀 요소를 선택합니다.
/bookstore/book[price>35.00]서점 요소의 모든 책 요소를 선택하며, 가격 요소의 가치는 35.00보다 커야 합니다.
/bookstore/book[price>35.00]//title서점 요소의 책 요소 제목 요소를 모두 선택하며, 가격 요소의 가치는 35.00보다 커야 합니다.

알 수 없는 노드를 선택하세요

XPath 와일드카드는 알려지지 않은 XML 요소를 선택하는 데 사용할 수 있습니다.
와일드 카드
묘사
*모든 요소 노드와 일치합니다.
@*어떤 속성 노드든 일치합니다.
node()어떤 종류의 노드든 일치합니다.

아래 표에는 몇 가지 경로 표현식과 이 표현식들의 결과를 나열합니다:
경로 표현식
결과
/bookstore/*서점 요소의 모든 자식 요소를 선택합니다.
//*문서 내 모든 요소를 선택합니다.
제목[@*]모든 타이틀 요소를 속성으로 선택합니다.

여러 경로를 선택하세요

경로 표현식에서 "|"를 사용하여 운영자분들, 여러 경로를 선택할 수 있습니다.

아래 표에는 몇 가지 경로 표현식과 이 표현식들의 결과를 나열합니다:
경로 표현식
결과
//book/title | //book/price책 요소의 모든 제목과 가격 요소를 선택하세요.
제목 | 값문서에서 모든 제목과 가격 요소를 선택하세요.
/bookstore/book/title | //price서점 요소에 속하는 책 요소의 모든 제목 요소와 문서 내 모든 가격 요소를 선택합니다.

XPath 함수

다음은 핵심 XPath 함수와 XSLT에 의한 XPath 특화 추가 요소들의 주석 목록으로, 설명, 문법, 매개변수 목록, 결과 유형 및 해당 W3C 권고안의 출처를 포함합니다.

  • 불리언()
  • 천장()
  • choose()
  • 콘캣()
  • 포함()
  • 카운트()
  • current() XSLT 특화
  • document() XSLT 특화
  • element-available()
  • false()
  • 층()
  • format-number() XSLT 특화
  • 함수-가용성()
  • generate-id() XSLT 특화
  • id()
  • key() XSLT 특화
  • lang()
  • 마지막()
  • local-name()
  • 이름()
  • Namespace-uri()
  • 정규화 공간()
  • not()
  • 번호()
  • position()
  • 라운드()
  • starts-with()
  • string()
  • 문자열 길이()
  • 서브스트링()
  • 서브스트링 후()
  • 서브스트링 비포()
  • sum()
  • system-property() XSLT 특화
  • translate()
  • true()
  • unparsed-entity-url() XSLT 특화

실기 시험

크롬을 열고 다음 명령어로 모든 A 탭 링크의 텍스트 내용을 확인하세요:
아래에 나와 있습니다:



참조:하이퍼링크 로그인이 보입니다.




이전의:[극작가] (3) 오류 예외를 잡기 위한 자동 테스트
다음:.NET/C#은 Azure Translator 텍스트 번역 인터페이스 서비스를 호출합니다
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com