【发布时间】:2015-08-24 07:25:37
【问题描述】:
我必须编辑一个构建 xml 字符串的存储过程,以便所有元素值都包含在 cdata 中。一些值已经包含在 cdata 中,所以我需要忽略它们。
我认为这是学习一些正则表达式的好尝试
From: <element>~DATA_04</element>
to: <element><![CDATA[~DATA_04]]></element>
对于如何做到这一点,我有哪些选择?我可以做简单的正则表达式,这更高级。
注意:<element> 是通用的,用于说明目的,实际上,它可以是任何东西并且是未知的。
示例文本:
declare @sql nvarchar(max) =
' <data>
<header></header>
<docInfo>Blah</docInfo>
<someelement>~DATA_04</someelement>
<anotherelement><![CDATA[~DATA_05]]></anotherelement>
</data>
'
使用示例 xml,正则表达式需要找到一些元素并将 cdata 添加到其中,如 <someelement><![CDATA[~DATA_04]]></someelement> 并保留其他元素。
请记住,这可怕的 sql 代码不是我写的,我只需要编辑它。
【问题讨论】: