PLSQL:在 xml 中查找标签值并将其替换为标签名称以创建示例数据

Posted

技术标签:

【中文标题】PLSQL:在 xml 中查找标签值并将其替换为标签名称以创建示例数据【英文标题】:PLSQL: find and replace tag value in xml with the tag name to create sample data 【发布时间】:2017-11-28 11:22:12 【问题描述】:

PLSQL

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

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

至:<project>project</project><house>house</house>

有人有想法吗?

谢谢。

【问题讨论】:

sql中的用户替换,可以在PL/SQL中使用if then语句,将字符串替换为别的东西。 【参考方案1】:

您可以使用函数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>

【讨论】:

【参考方案2】:

试试这个。

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

【讨论】:

以上是关于PLSQL:在 xml 中查找标签值并将其替换为标签名称以创建示例数据的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python 在 XML 中查找和替换值

VS代码查找xml属性并替换为当前值*因子

用 BeautifulSoup 中的另一个标签替换一个标签

从 XML 文件中查找和替换值

查找列中的唯一值并将唯一值替换为数字

PLSQL 从 XML 读取值(再次)?