当前位置:编程学习 > C#/ASP.NET >>

如何把XML中的数据添加到哈希表中?????????????????????????????????? 立马结贴



如何把XML中的数据添加到哈希表中???


比如节点结果是这样的。

<root>
  <FileList>
    <Node>
      <LocalPath>/NAND FLASH/FLASH/button/BT1.JPG</LocalPath>
      <RemotePath>/NAND FLASH/FLASH/button/BT1.JPG</RemotePath>
      <FileSize>15364</FileSize>
      <Version>2</Version>
    </Node>
</FileList>
</root>

立马结贴立马结贴立马结贴立马结贴 --------------------编程问答-------------------- 使用XMLDocument来读取XML数据
string path = Server.MapPath("File/XMLFile.xml");
            XmlDocument doc = new XmlDocument();
            doc.Load(path); --------------------编程问答--------------------
引用 1 楼 rock870210 的回复:
使用XMLDocument来读取XML数据
string path = Server.MapPath("File/XMLFile.xml");
  XmlDocument doc = new XmlDocument();
  doc.Load(path);


我想把数据添加到哈希表中。。。。- -。 我知道怎么读取阿。。 --------------------编程问答-------------------- 没有人帮忙解决一下么??????????? --------------------编程问答-------------------- HashTable保存的就是键值对,RemotePath保存在键中,/NAND FLASH/FLASH/button/BT1.JPG保存在Value中即可
如果有多个列表,则可以嵌套保存
建议使用Dictionary<string, Dictionary<string, string>>来保存。
一个Node节点保存在Dictionary<string, string>中,然后该Dictionary<string, string>保存在上述集合中 --------------------编程问答--------------------
引用 4 楼 rock870210 的回复:
HashTable保存的就是键值对,RemotePath保存在键中,/NAND FLASH/FLASH/button/BT1.JPG保存在Value中即可
如果有多个列表,则可以嵌套保存
建议使用Dictionary<string, Dictionary<string, string>>来保存。
一个Node节点保存在Dictionary<string, string>中,然后该Dictio……



能写个简单的例子吗。。。 --------------------编程问答--------------------

Dictionary<string, Dictionary<string, string>> first = new Dictionary<string, Dictionary<string, string>>();
            Dictionary<string, string> child = null;
            int flag = 0;
            //循环XML列表
            flag++;
            child = new Dictionary<string, string>();
            child.Add("LocalPath", "/NAND FLASH/FLASH/button/BT1.JPG");
            child.Add("...","...");
            //...
            first.Add(flag.ToString(),child);//这里就添加了一个Node节点,然后接着循环获取其他Node节点内容
--------------------编程问答-------------------- 读取XML
http://topic.csdn.net/u/20110210/16/913bfb37-3c3f-4852-9b39-029565c844ad.html --------------------编程问答--------------------  foreach (XmlNode Upnode in UpxmChild)//服务器
                                                {
                                                    if (node.Name == "Version" && Upnode.Name == "Version")
                                                    {
                                                        if (!node.InnerText.Equals(Upnode.InnerText))//如果本机和服务器的版本号不一致
                                                        {
                                                            //添加到下载列表中
                                                            //DownTable.Add("Version", node.InnerText);
                                                            //DownTable.Add("FileSize", UpdateFileSize);
                                                            //DownTable.Add("LocalPath", UpdateLocalPath);
                                                            //DownTable.Add("RemotePath", UpdateRemotePath);

                                                            child.Add("Version", node.InnerText);
                                                            child.Add("FileSize", UpdateFileSize);
                                                            child.Add("LocalPath", UpdateLocalPath);
                                                            child.Add("RemotePath", UpdateRemotePath);
                                                            first.Add("Node",child);
                                                        }
                                                        else //如果一致 循环删除服务器上的数据
                                                        {
                                                            first.Remove("Node");
                                                        }}



不能循环给表中添加。他会提示已经存在键。。。 --------------------编程问答-------------------- 键是不允许有重复的。所以在first.Add那里的键需要设为别的。
int flag = 0;
foreach (XmlNode Upnode in UpxmChild)//服务器
  {
  if (node.Name == "Version" && Upnode.Name == "Version")
  {
  if (!node.InnerText.Equals(Upnode.InnerText))//如果本机和服务器的版本号不一致
  {
  //添加到下载列表中
  //DownTable.Add("Version", node.InnerText);
  //DownTable.Add("FileSize", UpdateFileSize);
  //DownTable.Add("LocalPath", UpdateLocalPath);
  //DownTable.Add("RemotePath", UpdateRemotePath);
  flag ++ ;
  child.Add("Version", node.InnerText);
  child.Add("FileSize", UpdateFileSize);
  child.Add("LocalPath", UpdateLocalPath);
  child.Add("RemotePath", UpdateRemotePath);
  first.Add(flag.ToString(),child);
  }
  else //如果一致 循环删除服务器上的数据
  {
  first.Remove("Node");
  }}

--------------------编程问答-------------------- 具体设为什么,根据你程序的需要做相应的调整。 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 2 楼 yz_888 的回复:
引用 1 楼 rock870210 的回复:
使用XMLDocument来读取XML数据
string path = Server.MapPath("File/XMLFile.xml");
XmlDocument doc = new XmlDocument();
doc.Load(path);


我想把数据添加到哈希表中。。。。- -。 我知道怎么读取阿。。

读取的时候直接匹配就行了啊。
ht[这里传你的键值].ToString();整个就返回你想要的了。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,