PLSQL:使用标记名称查找并替换xml中的标记值以创建样本数据

时间:2017-11-28 11:22:13

标签: html xml plsql

PLSQL

我想用标签名称替换标签值 输入:字符串。
输出:转换字符串。

例如:
<project>aQFH454</project><house>dvdrun</house>

于:
<project>project</project><house>house</house>

有人有想法吗?

感谢。

2 个答案:

答案 0 :(得分:0)

您可以使用函数REGEXP_REPLACE并提取正确的正则表达式组来执行此操作:

SELECT REGEXP_REPLACE(txt,'(<)(\w+?)(>)(\w+?)(</)(\w+?)(>)+','\1\2\3\2\5\6\7')
FROM (SELECT '<project>aQFH454</project><house>dvdrun</house>' txt FROM dual)

组\ 2是标签名称:

<project>project</project><house>house</house>

答案 1 :(得分:0)

试试这个。

SELECT REGEXP_REPLACE ('<project>aQFH454</project><house>dvdrun</house>',
                       '<(.+)>.+</(\1)>',
                       '<\1>\1</\1>')
  FROM DUAL;