假设我有一个名为“xml”的表,它将 XML 文件存储在单列“数据”中。我将如何编写运行 XPath 并仅返回与该 XPath 匹配的行的 MySQL 查询?
ripper234
问问题
11700 次
2 回答
9
SELECT * FROM xml
WHERE EXTRACTVALUE(data, '<xpath-expr>') != '';
但是,您应该注意,MySQL 对 XPath 的支持是有限制的。
EXTRACTVALUE()
仅返回 CDATA。- 并非所有 XPath 结构都受支持。abatishchev 的回答中提到的文档页面上“XPath 限制”标题下的详细信息。
于 2008-12-08T17:04:35.470 回答
0
我刚从一位同事那里得到答案,似乎修剪 xml 经常有帮助:
select * from xml where
trim(both '\r\n' from ExtractValue(xml, '/some/xpath')) = 'value';
于 2008-12-08T17:21:28.293 回答