【发布时间】:2010-11-18 12:25:03
【问题描述】:
库存 ELMAH_Error 表使用 nText 字段来存储错误条目。我发现通过添加 XML 类型的字段;然后将此新字段添加到填充该字段的 SPROC 的 INSERT 语句中;我可以更好地利用 ELMAH 的输出。
现在我想了解如何查询该 XML 字段中的特定元素值。文档结构如下:
<error [...]>
<serverVariables>
<item name="ALL_HTTP">
<value string="..." />
</item>
<item name="ALL_RAW">
<value string="..." />
</item>
.
.
.
</serverVariables>
</error>
我需要能够查询下面特定项目的值。
所以我在看15seconds.com 文章中的一个例子:
SELECT MyXml.value('(/root/product[@id="304"]/name)[1]', 'nvarchar(30)')
并且我正在尝试将这些值映射到我的字段结构 - 但不能。例如
select top 10 RealXML.value('(/error/serverVariables[@id="REMOTE_HOST"]/name)[0]', 'nvarchar(30)')
REMOTE_HOST 的格式:
<item name="REMOTE_HOST">
<value string="55.55.55.55" />
</item>
非常感谢
【问题讨论】:
标签: sql-server elmah xpath sqlxml