SQL Server:XPATH查询失败

时间:2013-04-12 22:08:18

标签: sql-server xml xpath

我在SQL Server Management Studio上使用存储过程。有一个包含XML的列,我试图用XPATH访问,但是我收到了这个错误:

  

不允许使用内部子集DTD解析XML。使用带有样式选项2的CONVERT来启用有限的内部子集DTD支持

我阅读了有关转换和导入xml的文档,但没有运气。

要清楚,我将XML存储在表中的一列中,现在想要在存储过程中查询到内存后使用xpath访问它。有人知道我应该做什么吗?

1 个答案:

答案 0 :(得分:5)

你最有可能得到这个,因为在你的XML内部,你正在使用如下的文档定义:(DTD的MSDN example

<!DOCTYPE DOC [<!ATTLIST elem1 attr1 CDATA "defVal1">]><elem1>January</elem1>

Microsoft默认阻止此操作,因为它会创建潜在的安全漏洞。带有样式选项2的转换消息告诉您,您可以启用对DTD的部分支持,以便通过使用CONVERT function as it relates to XML来处理此XML。

我没有这方面的经验,所以我提供的不仅仅是MSDN的链接。

唯一的另一个选择是在Microsoft不推荐的服务器上启用完整的DTD支持。