: 주로 애플리케이션의 UI를 개발하는 데 사용 됌. 웹 사이트 또는 어플리케이션에서 볼 수 있는 텍스트, 이미지, 버튼 등 UI를 렌더링함.
: 데이터 교환 및 전송이 주 목적. 기계와 사람이 모두 읽을 수 있는 형식으로 데이터를 인코딩함.
XML은 데이터가 무엇인지 설명하는 반면 HTML은 데이터를 최종 사용자에게 표시하는 방법을 결정함.
HTML에는 모든 사람이 사용해야하는 사전에 정의된 태그가 있고, 작성하는 동안에는 태그를 직접 만들 수 없습니다. 반면 XML은 문서 작성자로서 정의할 수 있는 사용자 지정 태그를 사용합니다.
: XML 문서의 특정 요소나 속성에 접근하기 위한 경로를 지정하는 언어.
| 경로 연산자 | 설명 |
|---|---|
| 노드 이름 | 해당 '노드 이름'과 일치하는 모든 노드를 선택함. |
| / | 루트 노드부터 순서대로 탐색해 나감. |
| // | 현재 노드의 위치와 상관없이 지정된 노드에서부터 순서대로 탐색해 나감. |
| . | 현재 노드를 선택함. |
| .. | 현재 노드의 부모 노드를 선택함. |
| @ | 속성 노드를 선택함. |

| 검색 방향 | 설명 |
|---|---|
| self | 현재 노드를 선택함. |
| attribute | 현재 노드의 속성 노드를 모두 선택함. |
| namespace | 현재 노드의 네임스페이스 노드를 모두 선택함. |
| child | 현재 노드의 자식 노드를 모두 선택함. |
| descendant | 현재 노드의 자손 노드를 모두 선택함. |
| descendant-or-self | 현재 노드와 현재 노드의 자손 노드를 모두 선택함. |
| following | XML 문서에서 현재 노드의 종료 태그 이후에 등장하는 모든 노드를 선택함. |
| following-sibling | 현재 노드 이후에 위치하는 형제 노드를 모두 선택함. |
| parent | 현재 노드의 부모 노드를 선택함. |
| ancestor | 현재 노드의 조상 노드를 모두 선택함. |
| ancestor-or-self | 현재 노드와 현재 노드의 조상 노드를 모두 선택함. |
| preceding |
XML 문서에서 현재 노드 이전에 등장하는 모든 노드를 선택함. (조상 노드, 속성 노드, 네임스페이스 노드는 제외함) |
| preceding-sibling | 현재 노드 이전에 위치하는 형제 노드를 모두 선택함. |
검색방향::노드테스트[필터표현식]
[ 예제 ]
XPath 표현식 설명 p_languages/language[1] <p_languages>요소의 자식 노드 중 첫 번째 <language>요소를 선택함. p_languages/language[position() < 3] <p_languages>요소의 자식 노드 중 처음 두 개의 <language>요소를 선택함. p_languages/language[last()] <p_languages>요소의 자식 노드 중 마지막 <language>요소를 선택함. //priority[@rating] rating 속성을 가지고 있는 <priority>요소를 모두 선택함. //priority[@rating = 3] rating 속성의 속성값이 3인 <priority>요소를 모두 선택함. count(//language) 모든 <language>요소의 개수를 반환함.
: 선택된 노드셋을 평가하여 조건에 맞는 노드를 시퀀스 형태로 반환합니다.
아래는 가장 많이 사용되는 XPath 함수입니다.
| XPath 함수 | 설명 |
|---|---|
| position() | 현재 노드셋 안에서의 노드의 위치를 반환함. |
| last() | 현재 노드셋의 마지막 노드를 반환함. |
|
count(위치경로) |
지정된 노드셋의 총 노드 개수를 반환함. |
| name() | 현재 노드의 이름을 반환함. |
|
name(위치경로) |
지정된 노드셋의 첫 번째 노드를 반환함. |
: 임의의 노드를 선택하기 위해 임의 문자 기호(wild card)를 사용할 수 있습니다.
| 임의 문자 기호 | 설명 |
|---|---|
| * | 어떠한 요소 노드와도 일치함. |
| @* | 어떠한 속성 노드와도 일치함. |
| node() | 어떠한 종류의 어떤 노드와도 일치함. |
| text() | 어떠한 텍스트 노드와도 일치함. |
| 연산자 | 설명 | 반환 타입 |
|---|---|---|
| - | 음의 부호(단항 연산자) | 숫자(number) |
| *, div, mod | 곱셈, 나눗셈, 나머지 연산 | 숫자(number) |
| +, - | 덧셈, 뺄셈 | 숫자(number) |
| <, <=, >, >= | 비교 연산 | 불리언(boolean) |
| =, != | 등가 비교 연산 | 불리언(boolean) |
| and | 논리 AND 연산 | 불리언(boolean) |
| or | 논리 OR 연산 | 불리언(boolean) |
| | | 여러 개의 노드셋을 동시에 계산함. | 노드셋(node-set) |
[ 표현식 간단 정리 ]