본문으로 건너뛰기
최종 수정: 에

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의 형식이 올바르지 않으면 함수가 오류를 발생시킵니다.

예제​

  1. 기본 노드 값 추출
SELECT xpath_string('<a>123</a>', '/a');
+-----------------------------------+
| xpath_string('<a>123</a>', '/a') |
+-----------------------------------+
| 123 |
+-----------------------------------+
  1. 중첩 요소 추출
SELECT xpath_string('<a><b>123</b></a>', '/a/b');
+--------------------------------------------+
| xpath_string('<a><b>123</b></a>', '/a/b') |
+--------------------------------------------+
| 123 |
+--------------------------------------------+
  1. 속성 사용
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 |
+----------------------------------------------------------+
  1. 위치 조건식 사용
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 |
+----------------------------------------------------+
  1. NULL 입력
SELECT xpath_string(NULL, '/a');
+--------------------------+
| xpath_string(NULL, '/a') |
+--------------------------+
| NULL |
+--------------------------+
  1. CDATA 섹션: CDATA 내용이 일반 텍스트로 반환됨
SELECT xpath_string('<a><![CDATA[123]]></a>', '/a');
+----------------------------------------------+
| xpath_string('<a><![CDATA[123]]></a>', '/a') |
+----------------------------------------------+
| 123 |
+----------------------------------------------+
  1. XML 주석은 건너뜀
SELECT xpath_string('<a><!-- comment -->123</a>', '/a');
+--------------------------------------------------+
| xpath_string('<a><!-- comment -->123</a>', '/a') |
+--------------------------------------------------+
| 123 |
+--------------------------------------------------+
  1. 경로와 일치하는 노드가 없으면 빈 문자열 반환
SELECT xpath_string('<a>123</a>', '/b');
+----------------------------------+
| xpath_string('<a>123</a>', '/b') |
+----------------------------------+
| |
+----------------------------------+
  1. 형식이 잘못된 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