如何在MySQL中使用XPATH选择?

时间:2008-12-08 12:58:01

标签: sql mysql xpath

假设我有一个名为“xml”的表,它将XML文件存储在单个列“data”中。我如何编写运行XPath的MySQL查询并仅返回与该XPath匹配的行?

2 个答案:

答案 0 :(得分:8)

SELECT * FROM xml
WHERE EXTRACTVALUE(data, '<xpath-expr>') != '';

但是,您应该注意到MySQL对XPath的支持存在限制。

  • EXTRACTVALUE()仅返回CDATA。
  • 并非所有XPath构造都受支持。 abatishchev的答案中提到的文档page标题下的“XPath限制”下的详细信息。

答案 1 :(得分:0)

我刚从同事那里得到答案,似乎修剪xml经常会有所帮助:

select * from xml where 
   trim(both '\r\n' from ExtractValue(xml, '/some/xpath')) = 'value';