-
XPathEDI 관련 기술 용어 2022. 9. 16. 11:00
XML을 사용하다 보면 XPath라는 단어가 등장합니다.
오늘은 XPath에 대해 알아보겠습니다.
XPath 정의
XPath는 XML Path Language의 약자로 확장성 마크업 경로 언어입니다.
XML 문서에서 계층적 구조의 경로를 탐색하고, 원하는 내용을 선택하기 위해 사용되는 언어입니다.
(XML에 대해서 알아보고 싶다면 해당 포스팅을 확인해주세요↓)
XML 트리 구조
여기서 말하는 계층적 구조는 XML의 트리구조를 말합니다.
XML은 루트에서 시작하여, 뻗어 나가는 형식입니다.
위 그림을 보시면, 각 요소(element)로 이루어진 걸 볼 수 있습니다.
XML 트리는 루트 요소(Root element)에서 시작하여, 자식 요소로 내려갑니다.
여기서 부모(Parent), 자식(Children), 형제자매(Siblings)는 요소 간의 관계를 뜻합니다.
부모에게는 자식이 있고, 그 같은 라인에는 형제자매가 있습니다.
루트 요소는 부모 요소이며, 그 아래 하위 요소는 자식 요소가 되는 것입니다.
XPath는 이런 XML 문서의 요소와 속성을 탐색하는 데 사용하는 것을 뜻합니다.
XPath 노드(Node)
XPath에는 루트(최상위 element), 요소(element), 속성(attribute), 텍스트(text), 네임스페이스(namespace), 처리 명령, 주석(comment) 노드로 총 7가지 종류의 노드가 있습니다.
아까 봤던 트리 구조에서 요소와 비슷한 의미로 노드(node)를 사용합니다.
여기서 요소는 설명하는 속성 값이 되고, 텍스트는 최종으로 넣을 값이 됩니다.
<?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>
여기서 <bookstore>는 루트 요소 노드가 됩니다.
그 아래 들어가는 <author>J K. Rowling</author>는 요소 노드가 됩니다.
XPath 구문(Syntax)
XPath는 경로 표현식을 사용하여, XML 문서에서 노드 또는 노드 집합을 선택합니다.
노드는 경로 또는 단계를 따라 선택됩니다.
■ 위치 경로(Location path) 노드 선택
- 절대 경로
'/'로 시작하며, 루트 노드부터 순서대로 탐색합니다.
- 상대 경로
기준으로 지정되는 노드부터 탐색합니다.
노드이름(nodename)해당 '노드 이름(nodename)'과 일치하는 모든 노드를 선택/루트 노드부터 순서대로 탐색//현재 노드 위치와 상관없이 지정된 노드에서부터 순서대로 탐색.현재 노드를 선택..현재 노드의 부모 노드를 선택@속성 노드를 선택
■ 경로 표현식(Path expression) 구성 : 검색방향::노드테스트[필터표현식]
- 검색 방향 : 현재 노드를 기준으로 노드를 검색할 방향을 전달합니다.
- 노드 테스트 : 검색 방향에 존재하는 해당 노드를 검색합니다.
- 필터 표현식 : 검색된 노드 세트(node-set)에서 특정 노드나 특정 값을 포함하는 노드를 선택합니다.
경로 표현식의 예를 들면 child::language는 현재 노드의 자식 노드 중 <language>요소를 모두 선택하는 것입니다.
[참고 자료]
'EDI 관련 기술 용어' 카테고리의 다른 글
REST와 SOAP 비교 (1) 2022.10.07 XSD (XML Schema Definition language) (1) 2022.09.23 HTML (Hypertext Markup Language) (0) 2022.09.02 JSON (JavaScript Object Notation) (0) 2022.08.26 SOA (Service Oriented Architecture) (0) 2022.08.19