从 xml 节点获取值,无需在 SQL 服务器中进行 html 解码
Get value from xml node without html decoding in SQL Server
DECLARE @P1 xml
SET @P1='<Root><Data><script>function abc(){}<script></Data></Root>'
SELECT @P1
SELECT @P1.value('(/Root/Data)[1]', 'varchar(max)')
以上代码给出的值为
<script>function abc(){}<script>
即 html decoded.But 如何在没有 html 解码的情况下获取值。有什么方法可以获取节点元素内部的实际值吗?
无需替换实体引用即可使用查询方法获取元素值,然后将XML文本节点转换为varchar:
SELECT CAST(@P1.query('(/Root/Data)[1]/text()') AS varchar(MAX));
DECLARE @P1 xml
SET @P1='<Root><Data><script>function abc(){}<script></Data></Root>'
SELECT @P1
SELECT @P1.value('(/Root/Data)[1]', 'varchar(max)')
以上代码给出的值为
<script>function abc(){}<script>
即 html decoded.But 如何在没有 html 解码的情况下获取值。有什么方法可以获取节点元素内部的实际值吗?
无需替换实体引用即可使用查询方法获取元素值,然后将XML文本节点转换为varchar:
SELECT CAST(@P1.query('(/Root/Data)[1]/text()') AS varchar(MAX));