2017-07-13 20 views
-1

我基本上有一个XML阅读器,每个节点是一个相机与某些元素UID,名称等我试图找到一种方法能够输入名称和查找其相关的uid。查找XML读取器中的相关元素c#

这是我到目前为止的代码:

using (XmlReader reader = XmlReader.Create(@"\\IPADDRESS\Customers\customers\GRACE-SVR1\XmlConfig\EXAMPLE.XML")) 
     { 
      while (reader.Read()) 
      { 
       if ((reader.NodeType == XmlNodeType.Element) && (reader.Name == "CAMERA")) 
       { 
        if (reader.HasAttributes) 
        { 
         Console.WriteLine(reader.GetAttribute("name")); 
         Console.WriteLine(reader.GetAttribute("uid")); 

        } 
       } 
      } 
     } 
     Console.ReadLine(); 

这将显示信息,但我只是想知道如何去在键入姓名和其搜索相关的UID

+1

你不清楚你有什么样的问题。你不知道如何从控制台读取价值?此代码与*输入姓名并搜索相关的uid *无关。这段代码只是简单地写出所有摄像机元素的名称和uid属性 –

+0

等待,所以它获取了你想要的信息,但是你不知道如何输入以滤除不同的节点? –

+0

它检索的信息,但只显示它,我想能够输入一个名称,它给了我相关的ID元素 – foreveraphone

回答

1

我想,您正在寻找这个。

var name = Console.ReadLine(); 

using (XmlReader reader = XmlReader.Create(@"\\IPADDRESS\Customers\customers\GRACE-SVR1\XmlConfig\EXAMPLE.XML")) 
{ 
    while (reader.Read()) 
    { 
     if ((reader.NodeType == XmlNodeType.Element) && (reader.Name == "CAMERA")) 
     { 
      if (reader.HasAttributes && reader.GetAttribute("name") == name) 
      { 
       Console.WriteLine(reader.GetAttribute("uid")); 

      } 
     } 
    } 
} 
Console.ReadLine(); 
+0

谢谢你这是完美的你排序它。干杯! – foreveraphone

+0

@foreveraphone wc :)。请将其标记为已接受。 –

0

在XML可以使用XDocument.Load加载XML并使用LINQ查询获取“Camera”类型的所有元素。