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 식의 연산자를 사용하면 여러 경로를 선택할 수 있습니다.
아래 표에서 우리는 몇 가지 경로 표현과 표현의 결과를 나열했습니다 :
경로 식 | 결과 |
---|---|
// 책 / 제목 | // 책 / 가격 | 모든 책의 모든 요소 제목과 가격 요소를 선택합니다 |
// 제목 | //가격 | 문서의 모든 타이틀과 가격 요소를 선택합니다 |
/ 서점 / 책 / 제목 | //가격 | 문서의 서점 요소의 책 요소의 모든 제목 요소 및 모든 가격 요소를 선택합니다 |