有一个XML文件:
<Computer>
  <MAC>14:45:35:35:3</MAC>
  <IP>192.168.2.2</IP>
  <ComputerName>erterter</ComputerName>
</Computer>
<Computer>
  <MAC>34:35:45:45:43</MAC>
  <IP>10.18.2.</IP>
  <ComputerName>fdsgfgf</ComputerName>
</Computer>
<Computer>
  <MAC>00:1B:B9:56:87:38</MAC>
  <IP>34534553</IP>
  <ComputerName>3453455</ComputerName>
</Computer>
<Setting>
  <SubnetMask>255.255.255.0</SubnetMask>
  <DefaultGateway>345</DefaultGateway>
  <FirstDns>345</FirstDns>
  <SecondDns>345</SecondDns>
</Setting>
我想读取MAC的值为"00:1B:B9:56:87:38"的所有元素的值。
怎么办啊?

解决方案 »

  1.   

    //读取XML数据 
                XmlNodeList nodeList = xmldoc.SelectNodes("Computer");
                StringBuilder strBody;
                      
                for (int row = 0; row < nodeList.Count; row++)
                 {                
                  
                    MessageBox.Show(nodeList[row].Attributes["MAC"].Value.ToString());
                                  
                }
      

  2.   

    FOR里
    判断取出的值等于00:1B:B9:56:87:38
      

  3.   

    经断点调试发现,程序根本就没有进入for循环,因为根本无法读取出该节点:XmlDocument xmlDoc = new XmlDocument();
                    XmlNodeList nodeList = xmlDoc.SelectNodes("Computer");
                    MessageBox.Show(nodeList.Count.ToString());//0
                    for (int i = 0; i < nodeList.Count; i++)
                    {
                        string tempMac = nodeList[i].Attributes["MAC"].Value.ToString();
                        if (tempMac == mac)
                        {
                            MessageBox.Show(tempMac);
                            ip = nodeList[i].Attributes["IP"].Value.ToString();
                            computerName = nodeList[i].Attributes["ComputerName"].Value.ToString();
                            break;
                        }
                    }
    附XML文件:
    <Computer>
      <MAC>14:45:35:35:3</MAC>
      <IP>192.168.2.2</IP>
      <ComputerName>erterter</ComputerName>
    </Computer>
    <Computer>
      <MAC>34:35:45:45:43</MAC>
      <IP>10.18.2.</IP>
      <ComputerName>fdsgfgf</ComputerName>
    </Computer>
    <Computer>
      <MAC>00:1B:B9:56:87:38</MAC>
      <IP>34534553</IP>
      <ComputerName>3453455</ComputerName>
    </Computer>
    <Setting>
      <SubnetMask>255.255.255.0</SubnetMask>
      <DefaultGateway>345</DefaultGateway>
      <FirstDns>345</FirstDns>
      <SecondDns>345</SecondDns>
    </Setting>
      

  4.   

       XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(@"D:\Project\C#Test\WindowsApplication1\WindowsApplication4\XMLFile1.xml");
                XmlNodeList nodeList = xmlDoc.SelectNodes("/Computers/Computer");            for (int i = 0; i < nodeList.Count; i++)
                {
                        string tempMac = nodeList[i].ChildNodes[0].InnerText;
                        if(tempMac ==mac)
                        {
                             ip= nodeList[i].ChildNodes[1].InnerText;
    computerName = nodeList[i].ChildNodes[2].InnerText;
                          break;
                        }
                    
                }<?xml version="1.0" encoding="utf-8" ?>
    <Computers>
      <Computer>
        <MAC>14:45:35:35:3 </MAC>
        <IP>192.168.2.2 </IP>
        <ComputerName>erterter </ComputerName>
      </Computer>
      <Computer>
        <MAC>34:35:45:45:43 </MAC>
        <IP>10.18.2. </IP>
        <ComputerName>fdsgfgf </ComputerName>
      </Computer>
      <Computer>
        <MAC>00:1B:B9:56:87:38 </MAC>
        <IP>34534553 </IP>
        <ComputerName>3453455 </ComputerName>
      </Computer>
      <Setting>
        <SubnetMask>255.255.255.0 </SubnetMask>
        <DefaultGateway>345 </DefaultGateway>
        <FirstDns>345 </FirstDns>
        <SecondDns>345 </SecondDns>
      </Setting>
    </Computers>你的xml文件有问题啊你又2个Computer
    但没有Computer的父节点..
    帮你该了下
      

  5.   

    好的,已经改了。
    但主要问题还没解决啊。
    我现在想获取Computer节点数,用来循环,定位<MAC>00:1B:B9:56:87:38 </MAC> 
    然后再取
    <Computer> 
      <MAC>00:1B:B9:56:87:38 </MAC> 
      <IP>34534553 </IP> 
      <ComputerName>3453455 </ComputerName> 
    </Computer>
    的值