Html 替换SQL中的特定字符串
我们有一个MS SQL数据库,其中包含HTML标记。但是,我们需要经常更改顶部的CSS声明。有没有一种编写SQL查询的方法可以让我们轻松地替换标记之间的所有内容?例如:Html 替换SQL中的特定字符串,html,sql,sql-server,regex,Html,Sql,Sql Server,Regex,我们有一个MS SQL数据库,其中包含HTML标记。但是,我们需要经常更改顶部的CSS声明。有没有一种编写SQL查询的方法可以让我们轻松地替换标记之间的所有内容?例如: replace '<style>OLDSTYLES</style>' with '<style>NEWSTYLES</style>' 更具体地说,我们是否可以使用动态变量代替旧样式,这样我们就不必每次都复制并粘贴旧css?不要硬编码内联样式。使用样式表和类名。不要硬编码内联样式。
replace '<style>OLDSTYLES</style>' with '<style>NEWSTYLES</style>'
更具体地说,我们是否可以使用动态变量代替旧样式,这样我们就不必每次都复制并粘贴旧css?不要硬编码内联样式。使用样式表和类名。不要硬编码内联样式。使用样式表和类名。您要做的是 如果这不起作用,那么在那里放置一些键串,例如OLDSTYLES,并在将html从数据库中取出后替换它。您要做的是
如果这不起作用,那么在那里放置一些键串,例如OLDSTYLES,并在将html从数据库中取出后将其替换。这应该可以正常工作,可能需要稍微调整一下,但它确实起到了作用:
DECLARE
@markup NVARCHAR(MAX)
,@OldStyles NVARCHAR(MAX)
,@NewStyles NVARCHAR(MAX)
,@PatIndex INT
SELECT @markup = '<style>OLDSTYLES</style>'
,@OldStyles = 'OLDSTYLES'
,@NewStyles = 'NewStyles'
SET @PatIndex = PATINDEX('%<style>%',@markup)
IF @PatIndex > 0
SET @markup = REPLACE(@markup,@OldStyles,@NewStyles)
SELECT @markup
这应该可以很好地工作,它可能需要一些调整,但它做到了:
DECLARE
@markup NVARCHAR(MAX)
,@OldStyles NVARCHAR(MAX)
,@NewStyles NVARCHAR(MAX)
,@PatIndex INT
SELECT @markup = '<style>OLDSTYLES</style>'
,@OldStyles = 'OLDSTYLES'
,@NewStyles = 'NewStyles'
SET @PatIndex = PATINDEX('%<style>%',@markup)
IF @PatIndex > 0
SET @markup = REPLACE(@markup,@OldStyles,@NewStyles)
SELECT @markup
如果HTML标记是格式良好的XML,并且您熟悉XPath,那么您可以尝试以下解决方案。它应该适用于指定样式标记的情况,但是如果需要修改另一个标记,则需要相应地更改XPath表达式,这里是/html/style/text[1]。有关详细信息:
如果HTML标记是格式良好的XML,并且您熟悉XPath,那么您可以尝试以下解决方案。它应该适用于指定样式标记的情况,但是如果需要修改另一个标记,则需要相应地更改XPath表达式,这里是/html/style/text[1]。有关详细信息:
我不得不问,你不能只使用一个样式表文件吗?为什么要多次存储这个文件?你不能把它存储在一个地方,然后在输出时添加样式吗?好问题-我同意外部CSS或单个存储位置是理想的。然而,由于内部业务原因,我们目前无法做到这一点。这是一个临时的解决方法。我不得不问,你不能只使用一个样式表文件吗?为什么要多次存储这个?你不能把它存储在一个地方,然后在输出时添加样式吗?好问题-我同意外部CSS或单个存储位置是理想的。然而,由于内部业务原因,我们目前无法做到这一点。这是一个临时的解决方法。不是问题的答案,也不适用于所有场景。e、 HTML电子邮件。不是问题的答案,也不适用于所有情况。e、 g.HTML电子邮件。