获取正则表达式以解析表格列的xml格式数据

Posted

技术标签:

【中文标题】获取正则表达式以解析表格列的xml格式数据【英文标题】:Get regular expression to parse data in xml format of a table column 【发布时间】:2016-11-08 20:13:07 【问题描述】:

我有一个表,其中包含一个包含 xml 格式数据的列。 我想要做的是解析该列中的一些数据。 表格如下所示:

SalesID | SalesDetail 
--------|------------------ 
403958  | <SalesCode>4</SalesCode><SalesMessage>Same day shipping to customer in TX<SalesMessage>
453324  | <SalesCode>4</SalesCode><SalesMessage>Customer complained issues at check-out <SalesMessage>

有人可以指点使用 Impala 或 Hive 来解析 SalesCode 和 SalesMessage 的数据吗?

我尝试了多个正则表达式,但没有达到我想要的效果。任何帮助,将不胜感激!

【问题讨论】:

你能举一个你想要的预期结果的例子吗? 【参考方案1】:

您可以使用xpath_stringxpath_int

SELECT xpath_int (SalesDetail, 'SalesCode') as SalesCode,
       xpath_string (SalesDetail, 'SalesMessage') as SalesMessage FROM src;

【讨论】:

感谢 Alex 提供的重新格式化和解决方案提示! @alibov 我重新尝试了你的建议,这绝对有帮助,但我现在遇到了另一个问题——SalesCode 返回的值都是 0,而 SalesMessage 返回空字符串。有什么想法吗?谢谢! 您拥有的确切数据是什么?我刚刚测试了一些查询,似乎需要一个封装元素。在这种情况下,它必须出现在 xpath 中:elem/SalesCode

以上是关于获取正则表达式以解析表格列的xml格式数据的主要内容,如果未能解决你的问题,请参考以下文章

为啥用正则表达式解析 XML 是个坏主意? [关闭]

java解析xml ②之正则表达式配合解析

用于解析 HTML 表格的正则表达式?

替代正则表达式以解析链接的 HTML 页面 [重复]

通过正则表达式实现简单xml文件解析

Rails4:模型验证 slug 列的“格式”正则表达式