최신 웹 개발 튜토리얼
 

XPath는 구문


XPath는 XML 문서의 노드 또는 노드 세트를 선택하는 경로 식을 사용합니다. 노드가 경로 또는 단계에 따라 선택된다.


는 XML 예제 문서

우리는 아래의 예에서 다음과 같은 XML 문서를 사용합니다.

<?xml version="1.0" encoding="UTF-8"?>

<bookstore>

<book>
  <title lang="en">Harry Potter</title>
  <price>29.99</price>
</book>

<book>
  <title lang="en">Learning XML</title>
  <price>39.95</price>
</book>

</bookstore>

노드를 선택

XPath는 XML 문서의 노드를 선택하는 경로 식을 사용합니다. 노드가 경로 또는 단계에 따라 선택된다. 가장 유용한 경로 표현은 다음과 같습니다 :

표현 기술
nodename 이름이 "모든 노드를 선택 nodename "
/ 루트 노드에서 선택
// 에 상관없이 그들이 어디에 선택과 일치하는 현재 노드에서 문서의 노드를 선택하지 않습니다
. 현재 노드를 선택합니다
.. 현재 노드의 부모를 선택
@ 속성을 선택합니다

아래 표에서 우리는 몇 가지 경로 표현과 표현의 결과를 나열했습니다 :

경로 식 결과
서점 이름으로 모든 노드를 선택합니다 "bookstore"
/서점 루트 요소 서점을 선택합니다

Note: 경로가 슬래시로 시작하면 ( / ) 항상 요소에 대한 절대 경로를 나타냅니다!

서점 / 책 서점의 어린이 모든 책 요소를 선택합니다
//도서 에 상관없이 문서에있는 경우 모든 책 요소를 선택하지 않습니다
서점 // 책 그들은 서점 요소 아래에있는 서점 요소에 상관없이의 후손 인 모든 책 요소를 선택합니다
// @ LANG LANG라는 이름의 모든 속성을 선택합니다

술어

술어는 특정 노드 또는 특정 값을 포함하는 노드를 찾는 데 사용된다.

술어는 항상 대괄호에 포함됩니다.

아래 표에서 우리는 술어 일부 경로 표현과 표현의 결과를 나열했습니다 :

경로 식 결과
/ 서점 / 책 [1] 서점 요소의 자식 인 첫 번째 책 요소를 선택합니다.

Note: IE에서는 5,6,7,8,9 제 1 노드가 [0]이지만 W3C에 의하면, [1]이다. IE에서이 문제를 해결하기 위해 XPath에에 SelectionLanguage을 설정합니다 :

In JavaScript: xml . setProperty("SelectionLanguage","XPath") ;
/ 서점 / 책 [ last() ] 서점 요소의 자식 인 마지막 책 요소를 선택합니다
/ 서점 / 책 [ last() -1] 서점 요소의 자식 인 마지막으로 한 권의 책 요소를 선택합니다
/ 서점 / 책 [ position() <3] 서점 요소의 자식 인 처음 두 책의 요소를 선택합니다
// 표제 [@lang] 랭라는 이름의 속성이있는 모든 제목 요소를 선택합니다
// 표제 [LANG = 'EN'@] 의 값을 갖는 "LANG"속성을 갖는 모든 요소, 표제 선택 "en"
/bookstore/book[price>35.00] 값으로 가격 요소가 서점 요소의 모든 책 요소를 선택보다 35.00
/bookstore/book[price>35.00]/title 값으로 가격 요소가 서점 요소의 책의 모든 요소 제목 요소를 선택보다 35.00

알 수없는 노드를 선택

XPath는 와일드 카드는 알 수없는 XML 노드를 선택할 수 있습니다.

와일드 카드 기술
* 모든 요소 노드와 일치
@* 어떤 속성 노드를 일치
node() 어떤 종류의 노드를 일치

아래 표에서 우리는 몇 가지 경로 표현과 표현의 결과를 나열했습니다 :

경로 식 결과
/서점/* 서점 요소의 모든 자식 요소 노드를 선택합니다
// * 문서의 모든 요소를 ​​선택합니다
//표제[@*] 어떤 종류의 적어도 하나 개의 속성을 가진 모든 제목 요소를 선택합니다

여러 경로를 선택

사용하여 | XPath 식의 연산자를 사용하면 여러 경로를 선택할 수 있습니다.

아래 표에서 우리는 몇 가지 경로 표현과 표현의 결과를 나열했습니다 :

경로 식 결과
// 책 / 제목 | // 책 / 가격 모든 책의 모든 요소 제목과 가격 요소를 선택합니다
// 제목 | //가격 문서의 모든 타이틀과 가격 요소를 선택합니다
/ 서점 / 책 / 제목 | //가격 문서의 서점 요소의 책 요소의 모든 제목 요소 및 모든 가격 요소를 선택합니다