[英]Oracle: Split html string into multiple rows/columns?
我在 Oracle 中有一个表,其中某些行有一列嵌入了 HTML 字符串。 我想知道所需的 SQL 以便我可以将字符串拆分为多个字段/行。 表示例如下所示:
ID | HTML_内容 |
---|---|
1 | <div>Where would you like to go today?<ul><li><a href="#" data-jump="1234567">Customer Service</a></li><li><a href="#" data-jump="2134583">Technical Service</a></li><li><a href="#" data-jump="8881234">Human Resources</a></li></ul></div> |
我希望 output 看起来像:
ID | 数据_跳转 | 内容 |
---|---|---|
1 | 1234567 | 客户服务 |
1 | 2134583 | 技术服务 |
1 | 8881234 | 人力资源 |
谢谢!
如果您可以保证 HTMl 可以解析为 XML (所有封闭标签都有和结束标签),那么您可以执行以下操作:
with test_data as
( select
xmltype('<div>Where would you like to go today?<ul><li><a href="#" data-jump="1234567">Customer Service</a></li><li><a href="#" data-jump="2134583">Technical Service</a></li><li><a href="#" data-jump="8881234">Human Resources</a></li></ul></div>') vals
from dual)
select x.* from test_data,
XMLTABLE ('//li'
PASSING vals
COLUMNS
data_jump VARCHAR2(30) PATH 'a/@data-jump',
content varchar2(500) PATH '*'
) x
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.