4

我正在尝试从 xml 字段中提取参数,但似乎无法弄清楚如何通过参数的 name 属性过滤我的参数。

XML

<parameters>
    <parameter name="id">
        <item>2</item>
    </parameter>
    <parameter name="channel">
        <item>retail</item>
        <item>wholesale</item>
    </parameter>
</parameters>

我正在尝试提取 int 2 并在随后的查询中提取单词零售和批发。

我已经看到它在网上做了很多不同的方式,但似乎没有一个对我有用。任何帮助,将不胜感激。

谢谢!

4

1 回答 1

7

尝试这个:

declare @x xml = '<parameters>
    <parameter name="id">
        <item>2</item>
    </parameter>
    <parameter name="channel">
        <item>retail</item>
        <item>wholesale</item>
    </parameter>
</parameters>'

select t.s.value('.', 'nvarchar(max)')
from @x.nodes('//parameter[@name = "id"]/item') t(s)

它返回下表:

2
于 2013-06-11T23:00:10.963 回答