0

我有一个字符串

`...<..../><... id='someID' .../><...../>....` 

(该字符串的总长度超过 15k 个字符,这是一个 XML 表单定义)

在那个字符串里面我有这个someID值。我想在包含该值的元素之后放置一个新字符串:

...<..../><... id='someID' .../><my_new_string><...../>....

我试图根据someID值拆分那个长字符串,但这种方法太慢了。我怎样才能以另一种方式实现这一目标?

或者也许可以选择子字符串<... id='someID' .../>

4

3 回答 3

1

SQL 服务器可以使用 XML。您不需要使用子字符串。此页面上解决了一个类似的问题:xml.modify

于 2013-04-12T13:11:13.353 回答
0

您是否尝试过使用替换?例如:

REPLACE(yourString, yourPattern, yourPattern + newString);

使用您的示例,它看起来像:

REPLACE('...<..../><... id='someID' .../><...../>....',
        '<... id=''someID'' .../>',
        '<... id=''someID'' .../><my_new_string>');

请注意,我转义了“someID”周围的 ' 字符。

此致。

于 2013-04-12T13:08:46.833 回答
0

目前尚不清楚您的字符串是什么数据类型:xml(n)varchar?对于xml,可以使用各种数据类型方法;for函数(n)varchar将一个字符串插入到另一个字符串中。STUFF()

于 2013-04-12T14:36:28.290 回答