Maria Bili

Maria Bili

  • NA
  • 38
  • 37.3k

[Help] Fix a code about value of element/node in xml file.

Nov 19 2012 5:32 AM

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);
        }


Answers (2)