SQL Server:选择具有HTML值的XML字段

SQL Server:选择具有HTML值的XML字段,html,sql-server,xml,tsql,Html,Sql Server,Xml,Tsql,我为一个网站预先构建了一个ecomm模块,该网站将HTML存储在SQL的XML字段中 也就是说,当我从该字段中选择数据时,它都是行话,而不是HTML 如何在select语句中将XML重新编码为HTML 存储在xml字段中的数据[概述]: <locale en-US="&lt;h3&gt;As Shown Details&lt;/h3&gt; &lt;p&gt;6514/1 SN AWH TABLE LAMP AS SHOWN&lt;/

我为一个网站预先构建了一个ecomm模块,该网站将HTML存储在SQL的XML字段中

也就是说,当我从该字段中选择数据时,它都是行话,而不是HTML

如何在select语句中将XML重新编码为HTML

存储在xml字段中的数据[概述]:

<locale en-US="&lt;h3&gt;As Shown Details&lt;/h3&gt; &lt;p&gt;6514/1 SN AWH TABLE LAMP AS SHOWN&lt;/p&gt; &lt;h3&gt;Item Details&lt;/h3&gt; &lt;div class=&quot;table-responsive&quot;&gt;  &lt;table class=&quot;table table-striped table-condensed&quot; width=&quot;100%&quot; border=&quot;0&quot;&gt;   &lt;tbody&gt;     &lt;tr&gt;       &lt;th scope=&quot;row&quot;&gt;Manufacturer&lt;/th&gt;       &lt;td&gt;Holtkotter International&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;th scope=&quot;row&quot;&gt;Dimensions&lt;/th&gt;       &lt;td&gt;Width 7.25 x Depth 7.25 x Height 18.5&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;th scope=&quot;row&quot;&gt;Seat Height&lt;/th&gt;       &lt;td&gt;&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;th scope=&quot;row&quot;&gt;Arm Height&lt;/th&gt;       &lt;td&gt;&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;th scope=&quot;row&quot;&gt;Inside Depth&lt;/th&gt;       &lt;td&gt;&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;th scope=&quot;row&quot;&gt;Fabric Content&lt;/th&gt;       &lt;td&gt;&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;th scope=&quot;row&quot;&gt;Country of Origin&lt;/th&gt;       &lt;td&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt; &lt;/table&gt; &lt;/div&gt; &lt;div class=&quot;part1&quot;&gt;This modern table lamp adds style and versatility to virtually any decor. Equipped with a full-range, turn-knob dimmer and a 100 Watt Halogen bulb by Osram. Pair it with the matching wall sconce 9426, floor lamp 6515, or swing-arm floor lamp 9434.&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;part2&quot;&gt;Available in Hand Brushed Old Bronze (shown), Antique Brass, Brushed Brass, Chrome, and Satin Nickel Finishes.&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;part3&quot;&gt;Halogen Line Voltage 100W bulb included.&lt;/div&gt;" />
但它又回来了

<code><locale en-US="&lt;h3&gt;As Shown Details&lt;/h3&gt; &lt;p&gt;6514/1 SN AWH TABLE LAMP AS SHOWN&lt;/p&gt; &lt;h3&gt;Item Details&lt;/h3&gt; &lt;div class=&quot;table-responsive&quot;&gt;  &lt;table class=&quot;table table-striped table-condensed&quot; width=&quot;100%&quot; border=&quot;0&quot;&gt;   &lt;tbody&gt;     &lt;tr&gt;       &lt;th scope=&quot;row&quot;&gt;Manufacturer&lt;/th&gt;       &lt;td&gt;Holtkotter International&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;th scope=&quot;row&quot;&gt;Dimensions&lt;/th&gt;       &lt;td&gt;Width 7.25 x Depth 7.25 x Height 18.5&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;th scope=&quot;row&quot;&gt;Seat Height&lt;/th&gt;       &lt;td&gt;&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;th scope=&quot;row&quot;&gt;Arm Height&lt;/th&gt;       &lt;td&gt;&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;th scope=&quot;row&quot;&gt;Inside Depth&lt;/th&gt;       &lt;td&gt;&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;th scope=&quot;row&quot;&gt;Fabric Content&lt;/th&gt;       &lt;td&gt;&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;th scope=&quot;row&quot;&gt;Country of Origin&lt;/th&gt;       &lt;td&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt; &lt;/table&gt; &lt;/div&gt; &lt;div class=&quot;part1&quot;&gt;This modern table lamp adds style and versatility to virtually any decor. Equipped with a full-range, turn-knob dimmer and a 100 Watt Halogen bulb by Osram. Pair it with the matching wall sconce 9426, floor lamp 6515, or swing-arm floor lamp 9434.&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;part2&quot;&gt;Available in Hand Brushed Old Bronze (shown), Antique Brass, Brushed Brass, Chrome, and Satin Nickel Finishes.&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;part3&quot;&gt;Halogen Line Voltage 100W bulb included.&lt;/div&gt;" /></code>

无需手动重新编码。直接从XML读取属性值将隐式地为您执行所有重新编码:

DECLARE @mockup TABLE(Overview XML);
INSERT INTO @mockup(Overview) 
    VALUES(N'<locale en-US="&lt;h3&gt;As Shown Details&lt;/h3&gt; &lt;p&gt;6514/1 SN AWH TABLE LAMP AS SHOWN&lt;/p&gt; &lt;h3&gt;Item Details&lt;/h3&gt; &lt;div class=&quot;table-responsive&quot;&gt;  &lt;table class=&quot;table table-striped table-condensed&quot; width=&quot;100%&quot; border=&quot;0&quot;&gt;   &lt;tbody&gt;     &lt;tr&gt;       &lt;th scope=&quot;row&quot;&gt;Manufacturer&lt;/th&gt;       &lt;td&gt;Holtkotter International&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;th scope=&quot;row&quot;&gt;Dimensions&lt;/th&gt;       &lt;td&gt;Width 7.25 x Depth 7.25 x Height 18.5&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;th scope=&quot;row&quot;&gt;Seat Height&lt;/th&gt;       &lt;td&gt;&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;th scope=&quot;row&quot;&gt;Arm Height&lt;/th&gt;       &lt;td&gt;&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;th scope=&quot;row&quot;&gt;Inside Depth&lt;/th&gt;       &lt;td&gt;&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;th scope=&quot;row&quot;&gt;Fabric Content&lt;/th&gt;       &lt;td&gt;&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;th scope=&quot;row&quot;&gt;Country of Origin&lt;/th&gt;       &lt;td&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt; &lt;/table&gt; &lt;/div&gt; &lt;div class=&quot;part1&quot;&gt;This modern table lamp adds style and versatility to virtually any decor. Equipped with a full-range, turn-knob dimmer and a 100 Watt Halogen bulb by Osram. Pair it with the matching wall sconce 9426, floor lamp 6515, or swing-arm floor lamp 9434.&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;part2&quot;&gt;Available in Hand Brushed Old Bronze (shown), Antique Brass, Brushed Brass, Chrome, and Satin Nickel Finishes.&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;part3&quot;&gt;Halogen Line Voltage 100W bulb included.&lt;/div&gt;" />')

SELECT m.Overview.value(N'(/locale/@en-US)[1]','nvarchar(max)')
FROM @mockup AS m
DECLARE@mockup表(概述XML);
插入@mockup(概述)
值(N“”)
选择m.Overview.value(N'(/locale/@en-US)[1],'nvarchar(max)'
来自@mockup AS m
由于HTML规则不太严格(即未关闭的

元素),因此无法将结果转换为XML。但它工作得很好。嵌入到一个网站中,浏览器向我显示了这一点
重要您的CSS类当然丢失了…):


无需进行任何手动重新编码。直接从XML读取属性值将隐式地为您执行所有重新编码:

DECLARE @mockup TABLE(Overview XML);
INSERT INTO @mockup(Overview) 
    VALUES(N'<locale en-US="&lt;h3&gt;As Shown Details&lt;/h3&gt; &lt;p&gt;6514/1 SN AWH TABLE LAMP AS SHOWN&lt;/p&gt; &lt;h3&gt;Item Details&lt;/h3&gt; &lt;div class=&quot;table-responsive&quot;&gt;  &lt;table class=&quot;table table-striped table-condensed&quot; width=&quot;100%&quot; border=&quot;0&quot;&gt;   &lt;tbody&gt;     &lt;tr&gt;       &lt;th scope=&quot;row&quot;&gt;Manufacturer&lt;/th&gt;       &lt;td&gt;Holtkotter International&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;th scope=&quot;row&quot;&gt;Dimensions&lt;/th&gt;       &lt;td&gt;Width 7.25 x Depth 7.25 x Height 18.5&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;th scope=&quot;row&quot;&gt;Seat Height&lt;/th&gt;       &lt;td&gt;&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;th scope=&quot;row&quot;&gt;Arm Height&lt;/th&gt;       &lt;td&gt;&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;th scope=&quot;row&quot;&gt;Inside Depth&lt;/th&gt;       &lt;td&gt;&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;th scope=&quot;row&quot;&gt;Fabric Content&lt;/th&gt;       &lt;td&gt;&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;th scope=&quot;row&quot;&gt;Country of Origin&lt;/th&gt;       &lt;td&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt; &lt;/table&gt; &lt;/div&gt; &lt;div class=&quot;part1&quot;&gt;This modern table lamp adds style and versatility to virtually any decor. Equipped with a full-range, turn-knob dimmer and a 100 Watt Halogen bulb by Osram. Pair it with the matching wall sconce 9426, floor lamp 6515, or swing-arm floor lamp 9434.&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;part2&quot;&gt;Available in Hand Brushed Old Bronze (shown), Antique Brass, Brushed Brass, Chrome, and Satin Nickel Finishes.&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;part3&quot;&gt;Halogen Line Voltage 100W bulb included.&lt;/div&gt;" />')

SELECT m.Overview.value(N'(/locale/@en-US)[1]','nvarchar(max)')
FROM @mockup AS m
DECLARE@mockup表(概述XML);
插入@mockup(概述)
值(N“”)
选择m.Overview.value(N'(/locale/@en-US)[1],'nvarchar(max)'
来自@mockup AS m
由于HTML规则不太严格(即未关闭的

元素),因此无法将结果转换为XML。但它工作得很好。嵌入到一个网站中,浏览器向我显示了这一点
重要您的CSS类当然丢失了…):


也许一些样本数据和期望的结果会有帮助@johncapelletti我刚刚添加了一些数据也许一些样本数据和期望的结果会有帮助@johncapelletti我刚刚添加了一些data@JohnCappelletti一个(相关的)提示。无需使用
REPLACE
对实体重新编码。试试这个:
DECLARE@s VARCHAR(100)='somevilxml attr=“this&;that”/;选择CAST('+@s+''作为XML.value(N'.'和'nvarchar(max)')。主要优点:如果存在意外的实体,您的
REPLACE
cascade将无法捕获它……我现在明白了。我的第一次尝试失败了,所以我硬着头皮强迫它。我真的应该花一点时间再考虑一下。我会告诉我的孩子(和工作人员),“没有必要匆忙给出错误的答案。”@johncapelletti-One(相关)提示。无需使用
REPLACE
对实体重新编码。试试这个:
DECLARE@s VARCHAR(100)='somevilxml attr=“this&;that”/;选择CAST('+@s+''作为XML.value(N'.'和'nvarchar(max)')。主要优点:如果存在意外的实体,您的
REPLACE
cascade将无法捕获它……我现在明白了。我的第一次尝试失败了,所以我硬着头皮强迫它。我真的应该花一点时间再考虑一下。我会告诉我的孩子(和员工),“没有必要急于给出错误的答案。”