首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

C# 读取xml简单有关问题

2012-03-07 
C# 读取xml简单问题XML文档的格式如下IPInfo NameAllIP Name192.168.1.180TempID NameTemper

C# 读取xml简单问题

XML文档的格式如下
<IPInfo Name="All">
  <IP Name="192.168.1.180">
  <TempID Name="Temper">
  <ID Name="A0" Relay="-1">28-A4-64-03-03-00-00-FC</ID>
  </TempID>
  </IP>
  <IP Name="192.168.1.181">
  <TempID Name="Temper">
  <ID Name="A0" Relay="-1">28-A4-64-03-03-00-00-FA</ID>
  </TempID>
  </IP>
</IPInfo>


这个是读取XML的函数
 public static ArrayList GetTemInIP(string IP)
  {
  ArrayList arr = new ArrayList();
  XmlDocument doc = new XmlDocument();
  doc.Load(Form1.XmlUrl);//这个是路径
  XmlNodeList TemID = doc.SelectNodes("/IPInfo/IP[@Name='" + IP + "']");
  XmlNodeList list=null;
  list = TemID[0].SelectNodes("/IPInfo/IP/TempID/ID");
  foreach (XmlNode node in list)
  {
  string[] Temp = new string[3];
  Temp[0] = node.InnerXml;
  Temp[1] = node.Attributes["Name"].Value;
  Temp[2] = node.Attributes["Relay"].Value;
  arr.Add(Temp);
  }
  return arr;
  }
假如我传进的ip是192.168.1.180,我是想读取的是192.168.1.180下的数据,就是这个了<ID Name="A0" Relay="-1">28-A4-64-03-03-00-00-FC</ID>
但 读取的时候也把IP等于192.168.1.181的数据<ID Name="A0" Relay="-1">28-A4-64-03-03-00-00-FA</ID>
也读取出来了。
希望知道的朋友说一下哪里错了。谢谢了

[解决办法]
list = TemID[0].SelectNodes("/IPInfo/IP/TempID/ID");
估计是这句出问题了吧
xpath有相对路径和绝对路径。。你这是个绝对路径,也就是说仍旧 是相对于整个 xmldom的
list = TemID[0].SelectNodes("TempID/ID");
这样看看

热点排行