Последнее обновление
XPATH_STRING
Описание
Функция XPATH_STRING разбирает строку XML и возвращает первый узел XML, соответствующий выражению XPath.
подсказка
Эта функция поддерживается начиная с версии 3.0.6.
Синтаксис
XPATH_STRING(<xml_string>, <xpath_expression>)
Параметры
| Параметр | Описание |
|---|---|
<xml_string> | Исходная строка. Тип: VARCHAR |
<xpath_expression> | Выражение XPath. Тип: VARCHAR |
Возвращаемое значение
Возвращает значение типа VARCHAR, содержащее содержимое первого узла XML, соответствующего выражению XPath.
Особые случаи:
- Функция вызывает ошибку, если 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