首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL/MariaDB namespaces xml返回null,带有ExtractValue

MySQL/MariaDB namespaces xml返回null,带有ExtractValue
EN

Stack Overflow用户
提问于 2015-01-14 20:34:21
回答 2查看 1K关注 0票数 1

我在MariaDB数据库上有一些xml数据,需要进行一些解析。我已经尝试使用下面的代码来提取一些值,但是无论我尝试什么,我都会得到null作为输出

代码语言:javascript
复制
SELECT xmlResponse FROM myDataBase.xmlLogging where id = '1' INTO @xml;
SELECT ExtractValue(@xml, 'node2');

我还尝试了count(node2),尝试根据以下内容确定我的语法中是否存在错误

https://mariadb.com/kb/en/mariadb/documentation/sql-structure-and-commands/functions-and-operators/string-functions/extractvalue/

我的xml结构看起来像这样,带有名称空间

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
<ns:SMnamespace   xmlns:ns="http://somenamespace.com/WS/">
<ns:Error_spcCode>0</ns:Error_spcCode><ns:Error_spcMessage/>
<ListofData xmlns="http://www.vendor.com/namespeceIO">
    <node1>
        <node2>text</node2>
        <node3>text</node3>
        <node4/>
    </node1>
</ListofData>
</ns:SMnamespace>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>'
EN

回答 2

Stack Overflow用户

发布于 2015-01-14 21:00:27

MySQL/MariaDB不支持xml名称空间。但是,它们支持在元素名称中使用冒号。

您未获取节点的原因应该是您的位置路径try中的上下文无效:

SELECT ExtractValue(@xml, '//node2');

//开头的Xpath表达式表示文档中的任何节点。

票数 3
EN

Stack Overflow用户

发布于 2015-01-14 22:35:34

我找到了这个参考资料

http://bugs.mysql.com/bug.php?id=51425

这似乎也是我的情况。我演示的xml是我的实际xml的一个更简单的版本,它包含相当大的字符串。所以似乎只要我减小字符串的大小,我就可以得到结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27943075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档