如何解析多个xmls并在SQL中更新? [英] How to parse multiple xmls and update in SQL?

查看:61
本文介绍了如何解析多个xmls并在SQL中更新?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想解析多个xmls并使用sql更新状态。我将从前端级别传递Xml字符串。下面提到了Xml格式并传递了主键id以更新xml中的多个数据。



我能够解析单个xml。



I want to parse multiple xmls and update the status using sql. I will passing the Xml string from the front end level. Xml format is mentioned below and passing the primary key id to update multiple data in the xml.

I am able to parse single xml.

Xml format passed from front end are as below:
<pre><FTS>
    <WSI_OUT_IPI>
        <orderingCustomerAccount />
        <orderingCustomerName />
        <orderingCustomerAddress />
        <beneficiaryAccount />
        <beneficiaryAccountName />
        <beneficiaryAccountAddress />
        <instructedAmount>0</instructedAmount>
        <remittanceInfo />
        <WSI_OUT_IPIID>837</WSI_OUT_IPIID>
        <WSI_OUT_IPI_INTER_ID>837</WSI_OUT_IPI_INTER_ID>
        <UID>0</UID>
        <beneficiaryInstitution />
        <purposeofPayment />
        <sendersRef />
        <benBankreferenceNo />
        <ftsReferenceNo />
        <middleWareReferenceNo />
        <currency />
        <messageType />
        <additionalField1 />
        <additionalField2 />
        <additionalField3 />
        <additionalField4 />
        <additionalField5 />
        <additionalField6 />
        <additionalField7 />
        <additionalField8 />
        <additionalField9 />
        <IsDirectEntry />
        <CreatedBy />
        <CreatedDate>2018-10-25T10:34:09.5296514+05:30</CreatedDate>
        <ModifiedBy />
        <ModifiedDate>2018-10-25T10:34:09.5296514+05:30</ModifiedDate>
        <DBErrorCode />
        <DBErrorDetails />
        <CreditNarration />
        <DebitNarration />
        <TranscactionCode />
        <CreditAccountNo />
        <DebitAccountNo />
        <ChannelID>0</ChannelID>
        <Amount>0</Amount>
        <ForceCredit>false</ForceCredit>
        <RetryCount>0</RetryCount>
        <DebitExchangeRate>0</DebitExchangeRate>
        <CreditExchangeRate>0</CreditExchangeRate>
        <AvailableBalance>0</AvailableBalance>
        <IsChargePost>false</IsChargePost>
        <ChargePostAmount>0</ChargePostAmount>
        <RSA_Encrypted_AES_key />
        <reqRefNo />
        <RSASignature />
        <serviceId>WSIFFTS0001</serviceId>
        <isReversePost>false</isReversePost>
        <userName />
        <password />
        <IPAddress />
        <orderingCustomerBBAN />
        <purposeofPayment_Value />
        <TransactionId />
        <SFTPId>0</SFTPId>
        <TotalAmount>0</TotalAmount>
        <IsAvailableBalanceCheck>false</IsAvailableBalanceCheck>
        <VerifyAllTransactionXml />
        <IsCorePostingEnabled>false</IsCorePostingEnabled>
    </WSI_OUT_IPI>
    <WSI_OUT_IPI>
        <orderingCustomerAccount />
        <orderingCustomerName />
        <orderingCustomerAddress />
        <beneficiaryAccount />
        <beneficiaryAccountName />
        <beneficiaryAccountAddress />
        <instructedAmount>0</instructedAmount>
        <remittanceInfo />
        <WSI_OUT_IPIID>836</WSI_OUT_IPIID>
        <WSI_OUT_IPI_INTER_ID>836</WSI_OUT_IPI_INTER_ID>
        <UID>0</UID>
        <beneficiaryInstitution />
        <purposeofPayment />
        <sendersRef />
        <benBankreferenceNo />
        <ftsReferenceNo />
        <middleWareReferenceNo />
        <currency />
        <messageType />
        <additionalField1 />
        <additionalField2 />
        <additionalField3 />
        <additionalField4 />
        <additionalField5 />
        <additionalField6 />
        <additionalField7 />
        <additionalField8 />
        <additionalField9 />
        <IsDirectEntry />
        <CreatedBy />
        <CreatedDate>2018-10-25T10:34:12.1936506+05:30</CreatedDate>
        <ModifiedBy />
        <ModifiedDate>2018-10-25T10:34:12.1936506+05:30</ModifiedDate>
        <DBErrorCode />
        <DBErrorDetails />
        <CreditNarration />
        <DebitNarration />
        <TranscactionCode />
        <CreditAccountNo />
        <DebitAccountNo />
        <ChannelID>0</ChannelID>
        <Amount>0</Amount>
        <ForceCredit>false</ForceCredit>
        <RetryCount>0</RetryCount>
        <DebitExchangeRate>0</DebitExchangeRate>
        <CreditExchangeRate>0</CreditExchangeRate>
        <AvailableBalance>0</AvailableBalance>
        <IsChargePost>false</IsChargePost>
        <ChargePostAmount>0</ChargePostAmount>
        <RSA_Encrypted_AES_key />
        <reqRefNo />
        <RSASignature />
        <serviceId>WSIFFTS0001</serviceId>
        <isReversePost>false</isReversePost>
        <userName />
        <password />
        <IPAddress />
        <orderingCustomerBBAN />
        <purposeofPayment_Value />
        <TransactionId />
        <SFTPId>0</SFTPId>
        <TotalAmount>0</TotalAmount>
        <IsAvailableBalanceCheck>false</IsAvailableBalanceCheck>
        <VerifyAllTransactionXml />
        <IsCorePostingEnabled>false</IsCorePostingEnabled>
    </WSI_OUT_IPI>
    <WSI_OUT_IPI>
        <orderingCustomerAccount />
        <orderingCustomerName />
        <orderingCustomerAddress />
        <beneficiaryAccount />
        <beneficiaryAccountName />
        <beneficiaryAccountAddress />
        <instructedAmount>0</instructedAmount>
        <remittanceInfo />
        <WSI_OUT_IPIID>835</WSI_OUT_IPIID>
        <WSI_OUT_IPI_INTER_ID>835</WSI_OUT_IPI_INTER_ID>
        <UID>0</UID>
        <beneficiaryInstitution />
        <purposeofPayment />
        <sendersRef />
        <benBankreferenceNo />
        <ftsReferenceNo />
        <middleWareReferenceNo />
        <currency />
        <messageType />
        <additionalField1 />
        <additionalField2 />
        <additionalField3 />
        <additionalField4 />
        <additionalField5 />
        <additionalField6 />
        <additionalField7 />
        <additionalField8 />
        <additionalField9 />
        <IsDirectEntry />
        <CreatedBy />
        <CreatedDate>2018-10-25T10:34:15.3825261+05:30</CreatedDate>
        <ModifiedBy />
        <ModifiedDate>2018-10-25T10:34:15.3825261+05:30</ModifiedDate>
        <DBErrorCode />
        <DBErrorDetails />
        <CreditNarration />
        <DebitNarration />
        <TranscactionCode />
        <CreditAccountNo />
        <DebitAccountNo />
        <ChannelID>0</ChannelID>
        <Amount>0</Amount>
        <ForceCredit>false</ForceCredit>
        <RetryCount>0</RetryCount>
        <DebitExchangeRate>0</DebitExchangeRate>
        <CreditExchangeRate>0</CreditExchangeRate>
        <AvailableBalance>0</AvailableBalance>
        <IsChargePost>false</IsChargePost>
        <ChargePostAmount>0</ChargePostAmount>
        <RSA_Encrypted_AES_key />
        <reqRefNo />
        <RSASignature />
        <serviceId>WSIFFTS0001</serviceId>
        <isReversePost>false</isReversePost>
        <userName />
        <password />
        <IPAddress />
        <orderingCustomerBBAN />
        <purposeofPayment_Value />
        <TransactionId />
        <SFTPId>0</SFTPId>
        <TotalAmount>0</TotalAmount>
        <IsAvailableBalanceCheck>false</IsAvailableBalanceCheck>
        <VerifyAllTransactionXml />
        <IsCorePostingEnabled>false</IsCorePostingEnabled>
    </WSI_OUT_IPI>
    <WSI_OUT_IPI>
        <orderingCustomerAccount />
        <orderingCustomerName />
        <orderingCustomerAddress />
        <beneficiaryAccount />
        <beneficiaryAccountName />
        <beneficiaryAccountAddress />
        <instructedAmount>0</instructedAmount>
        <remittanceInfo />
        <WSI_OUT_IPIID>834</WSI_OUT_IPIID>
        <WSI_OUT_IPI_INTER_ID>834</WSI_OUT_IPI_INTER_ID>
        <UID>0</UID>
        <beneficiaryInstitution />
        <purposeofPayment />
        <sendersRef />
        <benBankreferenceNo />
        <ftsReferenceNo />
        <middleWareReferenceNo />
        <currency />
        <messageType />
        <additionalField1 />
        <additionalField2 />
        <additionalField3 />
        <additionalField4 />
        <additionalField5 />
        <additionalField6 />
        <additionalField7 />
        <additionalField8 />
        <additionalField9 />
        <IsDirectEntry />
        <CreatedBy />
        <CreatedDate>2018-10-25T10:34:17.0225229+05:30</CreatedDate>
        <ModifiedBy />
        <ModifiedDate>2018-10-25T10:34:17.0225229+05:30</ModifiedDate>
        <DBErrorCode />
        <DBErrorDetails />
        <CreditNarration />
        <DebitNarration />
        <TranscactionCode />
        <CreditAccountNo />
        <DebitAccountNo />
        <ChannelID>0</ChannelID>
        <Amount>0</Amount>
        <ForceCredit>false</ForceCredit>
        <RetryCount>0</RetryCount>
        <DebitExchangeRate>0</DebitExchangeRate>
        <CreditExchangeRate>0</CreditExchangeRate>
        <AvailableBalance>0</AvailableBalance>
        <IsChargePost>false</IsChargePost>
        <ChargePostAmount>0</ChargePostAmount>
        <RSA_Encrypted_AES_key />
        <reqRefNo />
        <RSASignature />
        <serviceId>WSIFFTS0001</serviceId>
        <isReversePost>false</isReversePost>
        <userName />
        <password />
        <IPAddress />
        <orderingCustomerBBAN />
        <purposeofPayment_Value />
        <TransactionId />
        <SFTPId>0</SFTPId>
        <TotalAmount>0</TotalAmount>
        <IsAvailableBalanceCheck>false</IsAvailableBalanceCheck>
        <VerifyAllTransactionXml />
        <IsCorePostingEnabled>false</IsCorePostingEnabled>
    </WSI_OUT_IPI>
    <WSI_OUT_IPI>
        <orderingCustomerAccount />
        <orderingCustomerName />
        <orderingCustomerAddress />
        <beneficiaryAccount />
        <beneficiaryAccountName />
        <beneficiaryAccountAddress />
        <instructedAmount>0</instructedAmount>
        <remittanceInfo />
        <WSI_OUT_IPIID>833</WSI_OUT_IPIID>
        <WSI_OUT_IPI_INTER_ID>833</WSI_OUT_IPI_INTER_ID>
        <UID>0</UID>
        <beneficiaryInstitution />
        <purposeofPayment />
        <sendersRef />
        <benBankreferenceNo />
        <ftsReferenceNo />
        <middleWareReferenceNo />
        <currency />
        <messageType />
        <additionalField1 />
        <additionalField2 />
        <additionalField3 />
        <additionalField4 />
        <additionalField5 />
        <additionalField6 />
        <additionalField7 />
        <additionalField8 />
        <additionalField9 />
        <IsDirectEntry />
        <CreatedBy />
        <CreatedDate>2018-10-25T10:34:19.3425564+05:30</CreatedDate>
        <ModifiedBy />
        <ModifiedDate>2018-10-25T10:34:19.3425564+05:30</ModifiedDate>
        <DBErrorCode />
        <DBErrorDetails />
        <CreditNarration />
        <DebitNarration />
        <TranscactionCode />
        <CreditAccountNo />
        <DebitAccountNo />
        <ChannelID>0</ChannelID>
        <Amount>0</Amount>
        <ForceCredit>false</ForceCredit>
        <RetryCount>0</RetryCount>
        <DebitExchangeRate>0</DebitExchangeRate>
        <CreditExchangeRate>0</CreditExchangeRate>
        <AvailableBalance>0</AvailableBalance>
        <IsChargePost>false</IsChargePost>
        <ChargePostAmount>0</ChargePostAmount>
        <RSA_Encrypted_AES_key />
        <reqRefNo />
        <RSASignature />
        <serviceId>WSIFFTS0001</serviceId>
        <isReversePost>false</isReversePost>
        <userName />
        <password />
        <IPAddress />
        <orderingCustomerBBAN />
        <purposeofPayment_Value />
        <TransactionId />
        <SFTPId>0</SFTPId>
        <TotalAmount>0</TotalAmount>
        <IsAvailableBalanceCheck>false</IsAvailableBalanceCheck>
        <VerifyAllTransactionXml />
        <IsCorePostingEnabled>false</IsCorePostingEnabled>
    </WSI_OUT_IPI>
</FTS>





我的尝试:





What I have tried:

 EXEC sp_xml_preparedocument @docHandle OUTPUT, @p_SMSXml                        
               
 
              select               
                @p_Body =Body  ,
                @P_ToRecipient = ToRecipient   ,
                @p_SMSalertId = SMSalertId

              FROM OPENXML(@docHandle, N'/FTS',2)                                                     
                WITH                                           
                (              
                      Body varchar(Max) ,
                     ToRecipient varchar(20),
                     SMSalertId varchar(20)                
                )   


				                                                
                                                                              (
                                                                                  Reference,ModeID,TypeID,Application_ID,Bulk_ReferenceID,
                                                                                  ToRecipient,SysReferenceID,CIF,Contact_ID,
                                                                                  Template_ID,FromSenderID,Body,
                                                                                  Status,ScheduleDatetime,CreatedDatetime,
                                                                                  SentDatetime,Priority,
                                                                                  ErrorName,LanguageID,
                              AttachmentPath,MailSubject,
                                                                                  ISHTML,GeneratePDF,
                                                                                  PDFTemplate_ID,PDFTemplateVariable,
                                                                                  Response,CC,BCC
                           
                                                                              )
                                                                              values
                                                                              ('
                                                                                                                                    
                                                                                                                                    
                                                                                                                                    
                                                                                                                                   -- Declare @Values nvarchar(max)                                                                                                                 
                                                                              --set @Values =   
                                                                                                                                          +isnull(@p_Reference,'NULL')+','''+isnull(convert( varchar ,@p_ModeID),'NULL')+''','''+isnull(convert( varchar ,@p_TypeID ) ,'NULL')+''','''+isnull(convert( varchar ,@P_Application_ID) ,'NULL') +''','+
                                                                                                                                         isnull(convert( varchar ,@p_Bulk_ReferenceID) ,'NULL') + ','''+isnull(convert( varchar ,@P_ToRecipient) ,'NULL') +''','''+isnull(convert( varchar ,@p_sysReferenceId ),'NULL')+''','+isnull(convert( varchar ,@p_CIF)  ,'NULL')                      
                                                                                                                                           +','+isnull(convert( varchar ,@p_Contact_ID) ,'NULL')                    +',
                                                                                                                                         ''1'','''+isnull(convert( varchar ,Ltrim(rtrim(@p_FromSenderID ))) ,'NULL')+''','''+isnull(convert( varchar ,@p_Body  )  ,'NULL')+''','''+isnull(convert( varchar ,@P_Status   )   ,'NULL')
                                                                                                                                         +''','''+LEFT(CONVERT(VARCHAR, getdate(), 120),
10)+''','''+LEFT(CONVERT(VARCHAR, getdate(), 120), 10)+''',
                                                                                 '+isnull(convert( varchar ,@P_SentDatetime  ),'NULL') +','+isnull(convert( varchar ,@p_Priority   )  ,'''0''')+','+isnull(convert( varchar ,@P_ErrorName  )   ,'NULL')+','
                                                                                                                                         +isnull(convert( varchar ,@p_LanguageId  )  ,'NULL')+','+isnull(convert( varchar ,@p_AttachmentPath ) ,'NULL')+','''+isnull(convert( varchar ,@p_MailSubject )  ,'NULL')+''',
                                                                                 '+isnull(convert( varchar ,@p_ISHTML   )  ,'''0''')+','+isnull(convert( varchar ,@p_GeneratePDF )     ,'''0''') +','+isnull(convert( varchar ,@p_PDFTemplate_ID )  ,'NULL')+',
'+isnull(convert( varchar ,@p_PDFTemplateVariable),'NULL') +','+isnull(convert( varchar ,@p_Response ) ,'NULL')+','+isnull(convert( varchar ,@p_CC  ),'NULL') +', 
                                                                                 '+isnull(convert( varchar ,@p_BCC ),'NULL')+')'                                        
                                                                                                                                          
                                                                                                                                         EXECUTE (@Query)

推荐答案

0)sql server,mysql,什么?



1)您的代码块的格式是无法读取的,我没有时间修复它。



2)如果要将数据从XML数据源放入SQL,绝对最简单的方法是从 DataTable.ReadXML()方法开始。
0) Sql server, mysql, what?

1) Your code blocks are formatted in such a way as to be IMPOSSIBLE to read, and I don't have time to fix it.

2) If you want to put data into SQL from a XML data source, the absolute easiest way is to start with the DataTable.ReadXML() method.


这篇关于如何解析多个xmls并在SQL中更新?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆