2012-06-21 41 views
0

XML數據存儲在這種格式在SQL Server查詢使用XQuery

<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>

謝謝。

回答

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>