1
我有一个非常大的xml文件,我将它存储在名为xml的longtext字段中,名为imports。MySQL中的ExtractData支持名称空间吗?
然后,我将如今的xml字符串存储在名为@xml的用户变量中。
SELECT xml FROM imports WHERE DATE(updated_at) = DATE(NOW()) INTO @xml;
我可以根据预期测试用户变量和数据的长度。
SELECT LENGTH(@xml);
测试我的目标xml标签的位置也按预期工作。
SELECT LOCATE('sm:ProductCode>', @xml);
但是,当我尝试对包含名称空间的XPath查询使用ExtractValue时,我得到空值。这个XPath查询已经过测试,可以在我的XPath探索软件中正常工作。
SELECT ExtractValue(@xml, '//sm:ProductCode');
对不起,我应该提到我使用的是5.1.41,我也在5.5.14上测试过 我读到了关于:字符的支持,但是有很少的文档可用,我想也许我正在点击此功能的限制。 有没有办法告诉MySQL包含在@xml中的数据是xml?所有字符串函数都可以正常工作,但XPath只返回null。 –