2017-05-25 40 views
0

XML文檔中的值我有一個XML文件,如下所示從提取重點用C#

<configuration> 
    <appSettings> 
    <add key="username1" value="password1"/> 
    <add key="username2" value="password2"/> 
    </appsettings> 
</configuration> 

我想讀值字段中的文本,當我通過的關鍵。如何做到這一點是C#。

在此先感謝。

+0

的[從app.config文件讀取]可能的複製(https://stackoverflow.com/questions/2400097/reading-from-應用程序配置文件) – barakcaf

+1

這通常是一個問題,你會對谷歌而不是StackOverflow。 – Abion47

+1

可能重複[如何解析XML文件?](https://stackoverflow.com/questions/55828/how-does-one-parse-xml-files) – Abion47

回答

1

如果LINQ只是爲了好玩,老XmlDocument的有方法的SelectSingleNode,接受的XPath

static void Main(string[] args) 
{ 
    var xmlval [email protected]"<configuration><appSettings><add key='username1' value='password1'/><add key='username2' value='password2'/></appSettings></configuration>"; 

    XmlDocument doc = new XmlDocument(); 
    doc.LoadXml(xmlval); 

    for (int i = 1; i < 5; i++) 
    { 
     string key = "username" + i.ToString(); 
     Console.WriteLine("Value for key {0} is {1}", key, getvalue(doc, key)); 
    } 


} 

static string getvalue(XmlDocument doc, string key) 
{ 
    var e = (XmlElement)doc.SelectSingleNode(string.Format("configuration/appSettings/add[@key='{0}']",key)); 
    if (e == null) 
     return null; 
    else 
     return e.Attributes["value"].Value; 
} 
0

你將不得不解析XML文件,使用LINQ to XML或類似的XmlDocument的東西。

例如使用XmlDocument的,你可以做這樣的事情:

XmlDocument xmlDoc = new XmlDocument(); // Create an XML document object 
      xmlDoc.Load("XMLFile1.xml"); // Load the XML document 

      // Get elements   
      XmlNodeList addElements = xmlDoc.GetElementsByTagName("add"); 
      XmlNode n = addElements.Item(0); //get first {add} Node 

      //Get attributes 
      XmlAttribute a1 = n.Attributes[0]; 
      XmlAttribute a2 = n.Attributes[1]; 

      // Display the results 
      Console.WriteLine("Key = " + a1.Name + " Value = " + a1.Value); 
      Console.WriteLine("Key = " + a2.Name + " Value = " + a2.Value);