2017-11-15 6 views
0

名前空間といくつかのヘッダータグを追加するには、SQL Server 2016でXMLを変更する必要があります。SQL SERVER XML OUTPUTを変更するNameSpaceとルートを追加します

<Request> 
    <Body> 
     <Xml> 
      <getHostedPaymentPageRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd"> 
       My xml from above 
     </getHostedPaymentPageRequest> 
    </Xml> 
</Body> 
</Request> 

:現在、私は私にこのブロック

選択@MAXML、TRANSXML @、HOSTSETTINGSXML @ XMLパスの

<merchantAuthentication> 
    <name>myName</name> 
    <transactionKey>myKey</transactionKey> 
</merchantAuthentication> 
     <transactionRequest> 
    <amount>5.500000000000000e+000</amount> 
    </transactionRequest> 
    <hostedPaymentSettings> 
    <settingName>hostedPaymentBillingAddressOptions</settingName> 
    <settingValue>{"show": true, "required":true}</settingValue> 
    </hostedPaymentSettings> 
    <hostedPaymentSettings> 
    <settingName>hostedPaymentButtonOptions</settingName> 
    <settingValue>{"text": "Pay"}</settingValue> 
    </hostedPaymentSettings> 
    <hostedPaymentSettings> 
    <settingName>hostedPaymentReturnOptions</settingName> 
    <settingValue>anyValue</settingValue> 
    </hostedPaymentSettings> 

そして、これが私の出力であるべきを与える選択クエリを持っていますハマった。数回試しましたが、正確なxmlを取得できませんでした。ありがとうございます。

答えて

1

私は自分の答えを与えるでしょう、それは他人に役立つかもしれません。 ステップ1:文字列に全体のXMLを変換した文字列 ステップ2としてヘッダを追加:XMLに戻って新しい文字列を変換し

ステップ1:

Set @strXML = '<Request><Body><Xml><getHostedPaymentPageRequest 
xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">'+ 
       Convert(nvarchar(MAX),@x)+ 
       '</getHostedPaymentPageRequest></Xml></Body></Request>' 

ステップ2:

SET @RequestXML = (SELECT CONVERT(XML,(SELECT CAST(@strXML AS XML)))) 
関連する問題