有一个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"的所有元素的值。
怎么办啊?
<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"的所有元素的值。
怎么办啊?
XmlNodeList nodeList = xmldoc.SelectNodes("Computer");
StringBuilder strBody;
for (int row = 0; row < nodeList.Count; row++)
{
MessageBox.Show(nodeList[row].Attributes["MAC"].Value.ToString());
}
判断取出的值等于00:1B:B9:56:87:38
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>
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的父节点..
帮你该了下
但主要问题还没解决啊。
我现在想获取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>
的值