<?xml version="1.0" encoding="gb2312"?>
<Config>
  <!--设置对应的IP地址,MAC地址,CS1.5序列号-->
  <Pc ip="192.168.100.1" mac="00:50:8D:78:48:D9" cs_cdkey="2498521763020"></Pc>
  <Pc ip="192.168.100.2" mac="00:50:8D:78:41:56" cs_cdkey="5898238712127"></Pc>
  <Pc ip="192.168.100.3" mac="00:50:8D:75:D6:35" cs_cdkey="5991335738183"></Pc>
  <Pc ip="192.168.100.4" mac="00:00:00:00:00:00" cs_cdkey="2292823454228"></Pc>
  <Pc ip="192.168.100.5" mac="00:50:8D:75:24:8B" cs_cdkey="8039436549949"></Pc>
  <Pc ip="192.168.100.6" mac="00:50:8D:75:CF:62" cs_cdkey="5895638781104"></Pc>
</Config>static string GetIPAddress()//根据本机MAC地址,从XML配置文件中获取对应的IP地址
        {
            XmlDocument _document = new XmlDocument();
            _document.Load("Config.xml");
            XmlNode ipAttr = _document.SelectSingleNode("/Config/PC[@mac='00-00-00-00-00']/@ip");
            return ipAttr.Value;
        }
上面可段代码可以根据mac的值来获取对应的IP。我现在想实现一个功能  根据IP值来修改mac的值,应该如何修改上面这段代码呢 ?55555555本人刚c# 比较愚笨 还请各位大侠赐教!~~~谢谢!

解决方案 »

  1.   

            public void SetValueByKeyName(string root,string key, string value, string xmlFile)
            {
                XmlDocument targetFile = new XmlDocument();            targetFile.Load(xmlFile);
                XmlNode xmlroot = targetFile.SelectSingleNode(root);
                XmlNode targetkey = xmlroot.SelectSingleNode(key);
                targetkey.InnerText = value;
                targetFile.Save(xmlFile);
            }
      

  2.   

                //修改XML文件的值
                XmlDocument xDoc = new XmlDocument();
                
                xDoc.Load("Config.xml");            XmlNode xNode;
                XmlElement xElem1;
                XmlElement xElem2;                      xNode = xDoc.SelectSingleNode("//Config");            xElem1 = (XmlElement)xNode.SelectSingleNode("//Pc[@ip='192.168.100.1']");
                if (xElem1 != null) 
                {
                    //找到了对应IP值的结点,修改其mac地址
                    xElem1.SetAttribute("mac", "00:50:8D:75:CF:62");  //要修改的mac的值
                  }
                else 
                {
                    //如果没有找到,可能自定义添一个
                    xElem2 = xDoc.CreateElement("Pc");
                    xElem2.SetAttribute("ip", "192.168.100.99");
                    xElem2.SetAttribute("mac", "00:50:8D:75:CF:62"); 
                    xElem2.SetAttribute("cs_cdkey", "5895638781104");
                    xNode.AppendChild(xElem2);
                }
                //保存到XML文件中
                xDoc.Save("Config.xml");
      

  3.   

    XmlDocument xmlDoc = new XmlDocument();   
    xmlDoc.Load("Demo.xml");   
    XmlNodeList nodeList = xmlDoc.SelectSingleNode("Config").ChildNodes;   //遍历所有子节点   
    foreach (XmlNode xn in nodeList)   
    {   
        //将子节点类型转换为XmlElement类型   
        XmlElement xe = xn as XmlElement;
        if (xe != null)
        {
            if (xe.Name == "Pc")
            {
                if (xe.GetAttribute("ip") == "192.168.100.1")
                {
                    xe.SetAttribute("mac", "aaa");
                    break;
                }
            }
        }
    }
    xmlDoc.Save("Demo.xml");  
      

  4.   

    看到楼上的几个实现,发现还是XPATH最简单,看来需要好好去学一下!