MySQL中XML數據的XPath支持

今天我要為大傢介紹的是XPath,XPath是導航和查詢XML文檔的語言。我們從一個函數開始。

  UpdateXML()函數

  我們已經花瞭很多時間介紹ExtractValue()函數,但還沒有介紹MySQL的其它XML函數,如UpdateXML(),因為我們先前主要將內容放在將XML文檔中的數據導入到MySQL數據庫中瞭,UpdateXML()是一個使用不同的XML標記匹配和替換XML塊的函數。

  ExtractValue()有兩個字符串參數,一個XML標記,一個XPath表達式。

<!–

Code highlighting produced by Actipro CodeHighlighter (freeware)
https://www.CodeHighlighter.com/

–>ExtractValue(xml_frag, xpath_expr)

  它返回第一個匹配XPath表達式的文本節點。假設你想將“”變為“”,並將結果保存到一個變量中,下面是使用UpdateXML()函數實現這個目標的做法:

<!–

Code highlighting produced by Actipro CodeHighlighter (freeware)
https://www.CodeHighlighter.com/

–>mysql> SELECT @new_xml_node:=UpdateXML(<state><city/></state>,
    ->    //city,
    ->    <county><city/></county>)
    -> AS xml_node;
+—————————————–+
| xml_node                                |
+—————————————–+
| <state><county><city/></county></state> |
+—————————————–+
1 row in set (0.03 sec)

mysql> SELECT @new_xml_node;
+—————————————–+
| @new_xml_node                           |
+—————————————–+
| <state><county><city/></county></state> |
+—————————————–+
1 row in set (0.00 sec)

  如果沒有發現匹配表達式的文本節點,就返回原始XML字符串。

<!–

Code highlighting produced by Actipro CodeHighlighter (freeware)
https://www.CodeHighlighter.com/

–>mysql> SELECT @new_

發佈留言