Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 替换SQL中的特定字符串_Html_Sql_Sql Server_Regex - Fatal编程技术网

Html 替换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?不要硬编码内联样式。使用样式表和类名。不要硬编码内联样式。

我们有一个MS SQL数据库,其中包含HTML标记。但是,我们需要经常更改顶部的CSS声明。有没有一种编写SQL查询的方法可以让我们轻松地替换标记之间的所有内容?例如:

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电子邮件。