メインコンテンツまでスキップ
バージョン: 4.x

XPATH_STRING

説明

XPATH_STRING関数は、XML文字列を解析し、XPath式にマッチする最初のXMLノードを返すために使用されます。

ヒント

この関数はバージョン3.0.6以降でサポートされています。

構文

XPATH_STRING(<xml_string>, <xpath_expression>)

パラメータ

Parameterデスクリプション
<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. position predicateの使用
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. CDATAとコメントの処理
SELECT xpath_string('<a><![CDATA[123]]></a>', '/a'), xpath_string('<a>123</a>', '/a');
+-----------------------------------------------+---------------------------------------------------+
| xpath_string('<a><![CDATA[123]]></a>', '/a') | xpath_string('<a>123</a>', '/a') |
+-----------------------------------------------+---------------------------------------------------+
| 123 | 123 |
+-----------------------------------------------+---------------------------------------------------+