一个第三方组件正在向一个表中的nvarchar列填充一些值。大多数情况下,它是人类可读的字符串,但是偶尔会出现XML(在第三方组件内部异常的情况下)。
作为一个临时解决方案(直到他们修复并始终使用字符串),我想解析XML数据并提取实际消息。
环境:SQL Server 2005;字符串大小始终小于1K;这个表可能有几千行。
我找到了几个解决方案,但不确定它们是否足够好:
1. 调用sp_xml_preparedocument存储过程,并将其包装在TRY/CATCH块中。检查返回值/句柄。 2. 编写托管代码(使用C#),再次进行异常处理并查看它是否为有效字符串。
这些方法都不太高效。我正在寻找类似于ISNUMERIC()的东西:一个ISXML()函数。还有其他更好的检查字符串的方法吗?
作为一个临时解决方案(直到他们修复并始终使用字符串),我想解析XML数据并提取实际消息。
环境:SQL Server 2005;字符串大小始终小于1K;这个表可能有几千行。
我找到了几个解决方案,但不确定它们是否足够好:
1. 调用sp_xml_preparedocument存储过程,并将其包装在TRY/CATCH块中。检查返回值/句柄。 2. 编写托管代码(使用C#),再次进行异常处理并查看它是否为有效字符串。
这些方法都不太高效。我正在寻找类似于ISNUMERIC()的东西:一个ISXML()函数。还有其他更好的检查字符串的方法吗?
<
开头,那么你可以确定它肯定不是 XML。 - Martin Smith