[帮助]修复xml文件中有关元素/节点值的代码. [英] [Help] Fix a code about value of element/node in xml file.

查看:75
本文介绍了[帮助]修复xml文件中有关元素/节点值的代码.的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,我有一个文件数据库为xml的文件,我将其添加到我的Project Winform C#中,现在我想在调试它时显示元素/节点bookID的值具有通过文本框中的Encryption MD5或SHA方法加密.你明白 ?现在这里是xml文件,图片演示和代码,请为我修复,非常感谢:

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>



这是我调试时的图片,它还没有加密bookID:

http://i1055.photobucket.com/albums/s505/vn_photo/sss.jpg

这是调试完成后我想要的图片:

http://i1055.photobucket.com/albums/s505/vn_photo/sse.jpg

这是我的代码:



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

推荐答案

</bookPrice> </book> < book> < bookID> 222</bookID> < bookName>美国</bookName> < bookPrice> 3
</bookPrice> </book> <book> <bookID>222</bookID> <bookName>USA</bookName> <bookPrice>3


</bookPrice> </book> < book> < bookID> 3333</bookID> < bookName>新加坡</bookName> < bookPrice> 4
</bookPrice> </book> <book> <bookID>3333</bookID> <bookName>Singapore</bookName> <bookPrice>4


</bookPrice> </book> </data>
</bookPrice> </book> </data>



这是我调试时的图片,它还没有加密bookID:

http://i1055.photobucket.com/albums/s505/vn_photo/sss.jpg

这是调试完成后我想要的图片:

http://i1055.photobucket.com/albums/s505/vn_photo/sse.jpg

这是我的代码:



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


这篇关于[帮助]修复xml文件中有关元素/节点值的代码.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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