Hi all, a have a 1 file database xml, I add it to my Project Winform C#, now I want when I debug it show a value of element/node bookID had Encryption by method Encryption MD5 or SHA in textbox, Are you understand ? Now here is xml file, picture demo and code, please fix for me, thank very much:
<?xml version="1.0" encoding="utf-8"?> <data> <book> <bookID>1111</bookID> <bookName>English</bookName> <bookPrice>2$</bookPrice> </book> <book> <bookID>222</bookID> <bookName>USA</bookName> <bookPrice>3$</bookPrice> </book> <book> <bookID>3333</bookID> <bookName>Singapore</bookName> <bookPrice>4$</bookPrice> </book> </data>
Here is a picture when I debug, it haven't still encryption bookID:
http://i1055.photobucket.com/albums/s505/vn_photo/sss.jpg
Here is picture required I want when debug finish:
http://i1055.photobucket.com/albums/s505/vn_photo/sse.jpg
Here is my code:
private void Form1_Load(object sender, EventArgs e) { //LoadXml("book.xml"); XmlDocument xml = new XmlDocument(); xml.Load("book.xml"); XmlNodeList xnList = xml.SelectNodes("/data[bookID]"); foreach (XmlNode xn in xnList) { XmlNode encryption = xn.SelectSingleNode("bookID"); if (encryption != null) { string pass = encryption["bookID"].InnerText; XmlNodeList CNodes = xn.SelectNodes("book"); foreach (XmlNode node in CNodes) { XmlNode encryption1 = node.SelectSingleNode("bookID"); if (encryption1 != null) { string md5 = EncrypSHA1(encryption1["bookID"].InnerText); } } } } xml.Save("book.xml"); LoadXml("book.xml"); } private void LoadXml(string FILE_NAME) { if (!File.Exists(FILE_NAME)) { MessageBox.Show("No find database!", "Notify!", MessageBoxButtons.OKCancel, MessageBoxIcon.Error); return; } StreamReader sr = File.OpenText(FILE_NAME); String input; input = sr.ReadToEnd(); sr.Close(); textBox1.Text = input; } private static string EncrypSHA1(string sMaHoa) { UTF32Encoding utf32 = new UTF32Encoding(); byte[] bytes = utf32.GetBytes(sMaHoa); //Encoding.UTF32.GetBytes( SHA1 md = new SHA1CryptoServiceProvider(); MD5 md5 = new MD5CryptoServiceProvider(); byte[] kq = md.ComputeHash(bytes); byte[] kq2 = md5.ComputeHash(kq); return Convert.ToBase64String(kq2); }