在SQL Server中不使用html解码从xml节点获取值
以上代码给出的值为在SQL Server中不使用html解码从xml节点获取值,sql,sql-server,xml,sql-server-2008,xquery,Sql,Sql Server,Xml,Sql Server 2008,Xquery,以上代码给出的值为 DECLARE @P1 xml SET @P1='<Root><Data><script>function abc(){}<script></Data></Root>' SELECT @P1 SELECT @P1.value('(/Root/Data)[1]', 'varchar(max)') i、 e html解码。但是如果没有html解码,我如何获得值呢。有没有办
DECLARE @P1 xml
SET @P1='<Root><Data><script>function abc(){}<script></Data></Root>'
SELECT @P1
SELECT @P1.value('(/Root/Data)[1]', 'varchar(max)')
i、 e html解码。但是如果没有html解码,我如何获得值呢。有没有办法获取节点元素内的实际值?您可以获取元素值,而无需使用查询方法替换实体引用,然后将XML文本节点强制转换为varchar:
<script>function abc(){}<script>
SELECT CAST(@P1.query('(/Root/Data)[1]/text()') AS varchar(MAX));