■ XPath란?
- XML문서의 특정 노드의 위치를 찾을 때 사용되는 규칙
- XML 문서 안의 요소와 속성들을 탐색한다.
- 특정 노드를 표현하는 방식은 절대경로와 상대경로 방식이 있다.
- 브라우저에서 개발자 모드(F12) - 특정 노드 선택 후 - [Copy]-[Copy XPath] 혹은 [Copy full XPath] 를 이용
| 노트 이름 |
종류 |
| / |
루트 노드부터 순서대로 탐색 |
| // |
지정된 노드에서부터 순서대로 탐색 |
| . |
현재 노드를 선택 |
| .. |
현재의 부모 노드를 선택 |
| @ |
속성 노드를 선택 |
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book>
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
</bookstore>
| Node |
종류 |
| /bookstore/book[1] |
/bookstore 자식인 첫 번째 book요소를 선택 |
| /bookstore/book[last()] |
마지막 book 요소 선택 |
| /bookstore/book[last()-1] |
마지막 요소보다 하나 위의 book 요소 선택 |
| /bookstore/book[position()<3] |
첫 번째, 두 번째 요소 선택 |
| //title[@lang] |
lang이라는 속성 이름을 가진 모든 title 요소 선택 |
| //title[@lang=‘en’] |
lang이라는 속성 이름이 ‘en’인 모든 title 요소 선택 |
| /bookstore/book[price > 35] |
price요소 값이 35를 초과하는 모든 book 요소 선택 |
| /bookstore/book[price > 35]/title |
price가 35를 초과하는 book 요소의 title 요소를 선택 |
| /bookstore/book/price[text()] |
price요소의 text를 가져옴 |
| Node |
종류 |
| /bookstore/* |
bookstore의 자식 요소들을 모두 선택 |
| //* |
문서 내의 모든 요소 선택 |
| //title[@*] |
적어도 하나의 속성을 갖는 모든 title 요소 선택 |
<html lang="en">
<head>
<meta charset="UTF-8">
<title> XPath Test </title>
</head>
<body>
<h1> testReport </h1>
<h1> testSample </h1>
<div class="result"> test1
<br>
<span class="passRate">90%</span>
<br>
<span class="runRate">100%</span>
</div>
</body>
</html>
댓글 영역