技术开发 频道

在MySQL中使用XML数据

  2 查询和修改XML数据

  从MySQL 5.1.5版本起,MySQL添加了对XML文档进行查询和修改的函数,分别是ExtractValue()和UpdateXML()。(详细语法见“MySQL6.0 Reference Manual 11.10 XML Functions")

  2.1 ExtractValue(xml_frag, xpath_expr)

  第一个参数:xml_frag为XML文档对象的名称

  第二个参数:xpath_expr为XPath格式的表达式

  作用:从目标XML中返回包含所查询值的字符串

  示例3:查询person_table中所有人的姓名

  mysql> select ExtractValue(info,'/person/name') from person_table;

  +-----------------------------------+

  | ExtractValue(info,'/person/name') |

  +-----------------------------------+

  | 张三 |

  | 李四 |

  +-----------------------------------+

  2 rows in set (0.33 sec)

  2.1 UpdateXML(xml_target, xpath_expr, new_xml)

  第一个参数:xml_target为XML文档对象的名称

  第二个参数:xpath_expr为XPath格式的字符串)

  第三个参数:new_value为新值

  作用:改变文档中符合条件的节点的值,

  将xml_target中满足xpath_expr的数据替换成new_value

  示例4:将姓名“张三”更改为“张三三”

  mysql> select UpdateXML(info,'/person/name[self:text()="张三"]','张三三')

  from person_table;

  +-----------------------------------------------------------------------------

  | UpdateXML(info,'/person/name[self:text()="张三"]','张三三') |

  ------------------------------------------------------------------------------

  | 111张三三8189123381893333

  one> |

  | 444李四818912338

  1893333 |

  +-------------------------------------------------------------------------------

  2 rows in set (0.00 sec)

  和MySQL其他许多新功能都是通过函数加入的一样,MySQL添加了新函数以支持对XML数据的查询和修改。由于新函数支持XPath表达式,使得查询起来比较方便。但是眼下流行的对xml数据的xquery查询方式,似乎还没有官方支持。MySQL这种仅通过函数支持XML查询的做法在很多时候显得捉襟见肘,以致网络上有大量的第三方开发包/库被开发出来,以方便开发人员更好地在MySQL中查询XML数据。

0
相关文章