2015-11-04 61 views
0

我基本上需要加密作爲xml字符串存儲在表的字段中的數據。更新來自多個xml字符串的節點

我正在使用AES加密。我已經有了加密和解密的邏輯。我想要做的就是加載xml字符串並更新兩個節點。

基本上我需要更新

<Bankaccountnumber>23232323</Bankaccountnumber>Banksortcode>232323</Banksortcode>節點。

我基本上有大約60,000條記錄,並希望使用C#程序高效地完成它。請參考下面

<?xml version="1.0" encoding="utf-16"?><callvalidate><authentication><company>Bestinvest Brokers</company><username>[email protected]</username><password>Pa55word67</password></authentication><sessions><session RID="0cee7f47-59b4-4fb2-a8eb-bafba9dec8ee"><data><Checksrequired><BankStandard>Yes</BankStandard><BankEnhanced>Yes</BankEnhanced><CardLive>No</CardLive><CardEnhanced>No</CardEnhanced><IDEnhanced>Yes</IDEnhanced><DeliveryFraud>No</DeliveryFraud><EmailValidate>No</EmailValidate><CreditScore>No</CreditScore><Zodiac>No</Zodiac><IPAddress>No</IPAddress></Checksrequired><Personalinformation><IndividualDetails><Title>Mr.</Title><Firstname>test</Firstname><Surname>test</Surname><Dateofbirth>1996-02-01T00:00:00</Dateofbirth><Emailaddress>[email protected]</Emailaddress></IndividualDetails><AddressDetails><Buildingname></Buildingname><Postcode>se93qS</Postcode><Previouspostcode /></AddressDetails></Personalinformation><Bankaccountnumber>23232323</Bankaccountnumber><Banksortcode>232323</Banksortcode></data></session></sessions><application>LT-API-BEML</application></callvalidate> 
+0

XML字符串樣本而樣品不具有BANKACCOUNTNUMBER或Banksortcode節點! –

+0

對不起剛更新了樣本 – Tom

+1

你的C#程序是什麼?爲什麼它不起作用?目前我看不到任何代碼。你希望我們從scatch實現它嗎?在這種情況下,[Hackhands](https://hackhands.com/)可能會幫助你,但Stack Overflow模式是不同的。 –

回答

0

嘗試XML的LINQ

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Xml; 
using System.Xml.Linq; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     const string FILENAME = @"\temp\test.xml"; 
     static void Main(string[] args) 
     { 
      XDocument callvalidate = XDocument.Load(FILENAME); 

      List<XElement> bankAccountNumbers = callvalidate.Descendants("Bankaccountnumber").ToList(); 
      for(int index = 0; index < bankAccountNumbers.Count; index++) 
      { 
       XElement bankAccountNumber = bankAccountNumbers[index]; 

       int accountNumber = int.Parse(bankAccountNumber.Value); 
       XElement newBankAccountNumber = new XElement("Bankaccountnumber", new object[] { 
        accountNumber, 
        new XElement("Banksortcode",accountNumber) 
       }); 
       bankAccountNumber = newBankAccountNumber; 
      } 
     } 
    } 
} 
​ 
+0

請注意我正在讀取多個記錄,因此將不得不遍歷每個xml字符串集合,獲取值並更新它 – Tom

+0

每個請求更新的代碼。 – jdweng