not sure how to use XmlNode in C#
c#, xml, xmldocument, xmlnode
Solution
You can use LINQ to XML (which is preferable in latest .Net versions)
var xdoc = XDocument.Load(fileManager.ConfigFile);
var serverConfig = xdoc.Root;
string version = (string)serverConfig.Attribute("version");
DateTime date = (DateTime)serverConfig.Attribute("createDate");
string type = (string)serverConfig.Attribute("type");
var items = from item in serverConfig.Element("items").Elements()
select new {
Name = (string)item.Attribute("name"),
Type = (string)item.Attribute("type"),
Source = (string)item.Attribute("source"),
Destination = (string)item.Attribute("destination")
};
Take a look - few lines of code and file parsed into strongly-typed variables. Even date is a `DateTime` object instead of string. And items are collection of anonymous objects with properties corresponding to xml attributes.
Problem
In C# I need to use XmlNode to get values from these attributes as follows: Root element (ServerConfig): type version createDate Child nodes (Items): name source destination XML: ``` <?xml version="1.0" encoding="utf-8"?> <ServerConfig type="ProjectName" version ="1.1.1.2" createDate ="2013-07-30T15:07:19.3859287+02:00" > <items> <item name="fs" type="directory" source="C:\temp\source" destination="C:\temp\target" action="Create" /> <item name="testdoc.txt" type="file" source="C:\temp\source" destination="C:\temp\target" action="Update" /> </items> </ServerConfig> ``` C#: ``` XmlTextReader reader = new XmlTextReader(fileManager.ConfigFile); XmlDocument doc = new XmlDocument(); XmlNode node = doc.ReadNode(reader); // failed to get values here var Version = node.Attributes["version"].Value; var Type = node.Attributes["type"].Value; var Date = node.Attributes["createDate"].Value; //how to get values from items/item attributes here? ``` Your example code much appreciated thanks :)