<?xml version="1.0" encoding="gb2312"?>
  <Config>
    <PC ip="92.168.100.1" mac="00:50:8D:78:48:D9"></PC>
    <PC ip="92.168.100.2" mac="00:50:8D:78:48:e9"></PC>
    <PC ip="92.168.100.3" mac="00:50:8D:78:48:f9"></PC>
    <PC ip="92.168.100.4" mac="00:50:8D:78:48:g9"></PC>
    <PC ip="92.168.100.5" mac="00:50:8D:78:48:h9"></PC>
    <PC ip="92.168.100.6" mac="00:50:8D:78:48:i9"></PC>
    <PC ip="92.168.100.7" mac="00:50:8D:78:48:j9"></PC>
  </Config>
如上这段代码!
我应该如何根据,mac的值,获取前面IP的值呢!或许我xml这样排不合理,有没更合理的方法?又是如何获取呢?请大哥 大姐 赐教啊! 我是新手 什么都不懂!~

解决方案 »

  1.   

    好像把它读入DataSet的一的一张表中,然后用视图去筛选。 
      

  2.   

    可以这样得到MAC
    DataSet ds = new DataSet(); 
    ds.ReaderXml("你的XML路径"); 
    foreach (DataRow row in ds.Tables[0].Rows) 
    {
       string str = row["mac"].ToString(); 
    }
      

  3.   

    你就直接读取Xml算了
    XmlDocument _document = new XmlDodument(XML路径);
    XmlNode _node =_document.SelectSingleNode("/Config/PC[@mac = '"+你要查询的+"']");
    得到Ip的话直接
    _node.Attribute["IP"].value
      

  4.   

                XmlDocument _document = new XmlDodument("D:\\NBWork\\ConfigTools++\\Config2.xml");
                XmlNode _node = _document.SelectSingleNode("/Config/PC[@mac = '" + "00:50:8D:78:48:D9" + "']");
               this.label1.Text=_node.Attribute["IP"].value;
    我这样 代码中下划线处提示错误!
     错误 1 找不到类型或命名空间名称“XmlDodument”(是否缺少 using 指令或程序集引用?)
    错误 2 “System.Xml.XmlNode”不包含“Attribute”的定义,并且找不到可接受类型为“System.Xml.XmlNode”的第一个参数的扩展方法“Attribute”(是否缺少 using 指令或程序集引用?)我已经
    using System;
    using System.Management;
    using System.Windows.Forms;
    using Microsoft.Win32;
    using System.Xml;
    using System.Xml.Linq;难道还差什么吗?
      

  5.   

    错误 1 找不到类型或命名空间名称“XmlDodument”(是否缺少 using 指令或程序集引用?) 
    大哥是XmlDocument
      

  6.   

    错误 2 “System.Xml.XmlNode”不包含“Attribute”的定义
    是Attributes
      

  7.   

    ("/Config/PC[@mac = '" + "00:50:8D:78:48:D9" + "']");
    改成
    ("/Config/PC[@mac =00:50:8D:78:48:D9]");
      

  8.   

    XML操作读/写各种方案,以及对比:http://blog.csdn.net/ChengKing/archive/2006/03/31/646363.aspx
    中第二个个.
      

  9.   

    XmlDocument _document = new XmlDocument("D:\\NBWork\\ConfigTools++\\Config2.xml");
     new XmlDocument是不是不应该这么写? 我这样写 new XmlDocument("D:\\NBWork\\ConfigTools++\\Config2.xml") 都是错误的
    错误 1 “System.Xml.XmlDocument”不包含采用“2”参数的构造函数
    另外 this.label1.Text=_node.Attributes["IP"].value;
    value是提示错误!
    错误 2 “System.Xml.XmlAttribute”不包含“value”的定义,并且找不到可接受类型为“System.Xml.XmlAttribute”的第一个参数的扩展方法“value”(是否缺少 using 指令或程序集引用?)
      

  10.   

    这样得到MAC 
    DataSet ds = new DataSet(); 
    ds.ReaderXml("你的XML路径"); 
    foreach (DataRow row in ds.Tables[0].Rows) 

      string str = row["mac"].ToString(); 
    }
      

  11.   

    我要根据mac 的ip  
      

  12.   

    那你再判断下就好了呀!!DataSet ds = new DataSet(); 
    ds.ReaderXml("你的XML路径"); 
    foreach (DataRow row in ds.Tables[0].Rows) 

      string str ="";
      string strIp =row["ip"].ToString(); 
      if(str == "比较的内容")
      {
         str = row["mac"].ToString(); 
      }
    }
      

  13.   

    错误 1 “System.Data.DataSet”不包含“ReaderXml”的定义,并且找不到可接受类型为“System.Data.DataSet”的第一个参数的扩展方法“ReaderXml”(是否缺少 using 指令或程序集引用?)
      

  14.   


    应该是
    XmlDocument _document = new XmlDocument();
    _document.Load("D:\\NBWork\\ConfigTools++\\Config2.xml");
    XmlNode ipAttr = _document.SelectSingleNode("/Config/PC[@mac='00:50:8D:78:48:D9']/@ip");
    return ipAttr.Value;
    这种XML文档没必要动不动去用DataSet之类的来操作