최종 수정: 에
XPATH_STRING
설명
XPATH_STRING 함수는 XML 문자열을 파싱하고 XPath 표현식과 일치하는 첫 번째 XML 노드를 반환하는 데 사용됩니다.
팁
이 함수는 버전 3.0.6부터 지원됩니다.
구문
XPATH_STRING(<xml_string>, <xpath_expression>)
매개변수
| 매개변수 | 설명 |
|---|---|
<xml_string> | 원본 문자열. 타입: VARCHAR |
<xpath_expression> | XPath 표현식. 타입: VARCHAR |
반환 값
VARCHAR 타입을 반환하며, XPath 표현식과 일치하는 첫 번째 XML 노드의 내용을 나타냅니다.
특수한 경우:
- xml 또는 xpath의 형식이 올바르지 않으면 함수가 오류를 발생시킵니다.
예제
- 기본 노드 값 추출
SELECT xpath_string('<a>123</a>', '/a');
+-----------------------------------+
| xpath_string('<a>123</a>', '/a') |
+-----------------------------------+
| 123 |
+-----------------------------------+
- 중첩 요소 추출
SELECT xpath_string('<a><b>123</b></a>', '/a/b');
+--------------------------------------------+
| xpath_string('<a><b>123</b></a>', '/a/b') |
+--------------------------------------------+
| 123 |
+--------------------------------------------+
- 속성 사용
SELECT xpath_string('<a><b id="1">123</b></a>', '//b[@id="1"]');
+----------------------------------------------------------+
| xpath_string('<a><b id="1">123</b></a>', '//b[@id="1"]') |
+----------------------------------------------------------+
| 123 |
+----------------------------------------------------------+
- 위치 조건식 사용
SELECT xpath_string('<a><b>1</b><b>2</b></a>', '/a/b[2]');
+----------------------------------------------------+
| xpath_string('<a><b>1</b><b>2</b></a>', '/a/b[2]') |
+----------------------------------------------------+
| 2 |
+----------------------------------------------------+
- NULL 입력
SELECT xpath_string(NULL, '/a');
+--------------------------+
| xpath_string(NULL, '/a') |
+--------------------------+
| NULL |
+--------------------------+
- CDATA 섹션: CDATA 내용이 일반 텍스트로 반환됨
SELECT xpath_string('<a><![CDATA[123]]></a>', '/a');
+----------------------------------------------+
| xpath_string('<a><![CDATA[123]]></a>', '/a') |
+----------------------------------------------+
| 123 |
+----------------------------------------------+
- XML 주석은 건너뜀
SELECT xpath_string('<a><!-- comment -->123</a>', '/a');
+--------------------------------------------------+
| xpath_string('<a><!-- comment -->123</a>', '/a') |
+--------------------------------------------------+
| 123 |
+--------------------------------------------------+
- 경로와 일치하는 노드가 없으면 빈 문자열 반환
SELECT xpath_string('<a>123</a>', '/b');
+----------------------------------+
| xpath_string('<a>123</a>', '/b') |
+----------------------------------+
| |
+----------------------------------+
- 형식이 잘못된 XML: 함수가 오류를 발생시킴
SELECT xpath_string('<a><!-- comment -->123/a>', '/a');
ERROR 1105 (HY000): errCode = 2, detailMessage = [INVALID_ARGUMENT]Function xpath_string failed to parse XML string: Start-end tags mismatch
키워드
XPATH_STRING, XPATH, XML