【问题标题】:SQL SERVER XML modify OUTPUT add NameSpace and rootSQL SERVER XML 修改 OUTPUT 添加 NameSpace 和 root
【发布时间】:2018-04-28 23:54:17
【问题描述】:

我需要在 SQL Server 2016 中修改我的 XML 以添加命名空间和几个标头标签。目前我有一个选择查询,它给了我这个块

为 XML 路径选择 @MAXML、@TRANSXML、@HOSTSETTINGSXML

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

这应该是我的输出:

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

我被困住了。尝试了很多次,但无法获得确切的 xml。提前谢谢。

【问题讨论】:

    标签: sql-server xml xml-namespaces for-xml-path


    【解决方案1】:

    我会给出我自己的答案,它可能对其他人有帮助。 步骤 1:将整个 XML 转换为字符串并将标头添加为字符串 Step2:将新字符串转换回XML

    第一步:

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

    第二步:

    SET @RequestXML = (SELECT CONVERT(XML,(SELECT CAST(@strXML AS XML))))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-11
      • 2019-05-25
      • 1970-01-01
      • 2020-07-27
      • 1970-01-01
      • 2010-11-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多