在Sql 2005中可以通过sp_xml_preparedocument与OPENXML获取节点的属性,如何通过节点的值查询节点属性呢?

解决方案 »

  1.   

    在2005下有强大的XQUERY支持,建议不要再去使用准备废弃的2000下的解析功能。
    楼主最好举例说明你的需求。
      

  2.   

    看看这个,内容多,就不贴了
    http://book.csdn.net/bookfiles/583/
    http://book.csdn.net/bookfiles/583/10058319106.shtml
      

  3.   


    declare @x xmlset @x = '
    <root>
    <node id="1">a</node>
    <node id="2">b</node>
    </root>
    'declare @value varchar(10)set @value = 'a'select
    t.c.value('@id','int') as attr_value
    from @x.nodes('root/node') t(c)
    where t.c.value('.','varchar(10)') = @value/**
    2
    **/看看这个例子,也许是你要的。
      

  4.   

    对于多个值,可用NODE方法,但是如果只是返回一个值的话,可以象下面这样:declare @x xmlset @x = '
    <root>
    <node id="1">a</node>
    <node id="2">b</node>
    </root>
    'declare @value varchar(10)set @value = 'a'select @x.value('(root/node/text()[.=sql:variable("@value")]/../@id)[1]','int')