Xquery 从属性中获取值

Posted

技术标签:

【中文标题】Xquery 从属性中获取值【英文标题】:Xquery get value from attribute 【发布时间】:2011-02-24 02:52:04 【问题描述】:

我有一些 xml,需要使用 sql 提取值

<?xml version="1.0" ?>  
<fields>  

<field name="fld_AccomAttic">  
<value>0</value>  
</field>  
<field name="fld_AccomBathroom">  
<value>1</value>  
</field>
</fields>  

</xml>

我需要得到 列名 fld_AccomAttic 价值 1

xml 保存在 sql server 2005 db 中

我以前用过 xquery,它已经奏效了。

如何提取这些值?

【问题讨论】:

【参考方案1】:
SELECT <xmlfield>.value('(/xml/fields/field/@name)[1]', 'varchar(60)')
FROM <table>
WHERE <xmlfield>.value('(/xml/fields/field/value/)[1], 'int') = 1

替换为您的表和字段名称。

【讨论】:

我希望获得 XML 的行视图,即 fld_AccomAttic fld_AccomBathroom 值 0 0 这可能吗?非常感谢您的原始回复 Sp 这是我在网上看到的最好的例子。谁能给我指出一个很好的参考或教程来解释这一点?【参考方案2】:

想起来了

XMLData.value('(/xml/fields/field[@name = "fld_AccomAttic"]/value)[1]','varchar(50)')

【讨论】:

以上是关于Xquery 从属性中获取值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 XQuery 中选择节点的属性值?

如何使用 XQuery 获取 XML 文件中的子节点数

XQuery 中是不是有任何方法可以获取自某个 Epoch 以来的当前时间(以毫秒为单位)?

使用 XQuery 获取 XML 文件的文件名

XQuery 如何使用 WHERE 查询获取整个 xml 文档

xQuery,如何从带有孩子的节点获取文本?