使用XQuery查询

时间:2012-06-21 21:59:41

标签: xquery

XML数据以这种格式存储在sql server

   <Fields>
     <Field id="1" name="aa" value="00"/>
     <Field id="2" name="bb" value="11"/>
     <Field id="3" name="cc" value="22"/>
     <Field id="4" name="dd" value="33"/>
  </Fields>

我想返回满足条件的所有行,但是以不同的格式返回每个xml:

   <Fields aa="00" bb="11" cc="22" dd="33">
   </Fields>

换句话说,我希望存储格式中的每个字段标记都作为返回的xml中的属性返回。

预期格式为<Fields aa="00" bb="11" cc="22" dd="33"> </Fields>

谢谢。

1 个答案:

答案 0 :(得分:0)

以下是一个可以实现目标的查询。我假设您知道如何从服务器检索XML数据;在这里,我使用变量$fields内联它:

xquery version "1.0";

let $fields :=
    <Fields>
        <Field id="1" name="aa" value="00"/>
        <Field id="2" name="bb" value="11"/>
        <Field id="3" name="cc" value="22"/>
        <Field id="4" name="dd" value="33"/>
    </Fields>
return
    <Fields>{
        for $field in $fields/Field
        let $name := $field/@name
        let $value := $field/@value
        return 
            attribute { $name } { $value }
    }</Fields>