How to get XML file contents in C#
First, set an xml file, and its contents are as follows:
<?xml version="1.0" encoding="utf-8" ?> <Config> <Device name="aaa"> <Type name="a01" func="1"></Type> <Type name="a02"></Type> <Type name="a03"></Type> <Type name="a04"></Type> </Device> <Device name="bbb"> <Type name="b01"></Type> <Type name="b02"></Type> <Type name="b03"></Type> <Type name="b04"></Type> </Device> <Device name="ccc"> <Type name="c01"></Type> <Type name="c02"></Type> <Type name="c03"></Type> <Type name="c04" func="2"></Type> </Device> </Config>
1. Read external XML file method
//Get all first-level directoriesList<string> devices = new List<string>(); XmlDocument doc = new XmlDocument(); ( + @"\TEMP\"); XmlNode xnl1 = ; foreach (XmlNode xn1 in ) { XmlElement xe1 = (XmlElement)xn1; (("name").ToString()); } return devices;
//Get a subdirectory under a first-level directory List<string> types = new List<string>(); XmlDocument doc = new XmlDocument(); ( + @"\TEMP\"); XmlNode xnl1 = ; foreach (XmlNode xn1 in xnl1) { XmlElement xe1 = (XmlElement)xn1; if (("name").ToString() == "aaa") { XmlNodeList xnl2 = ; foreach (XmlNode xn2 in xnl2) { XmlElement xe2 = (XmlElement)xn2; (("name").ToString()); } break; } } return types;
2. Read internal XML file method
File properties:
Copy to output directory: Don't copy
Generate operation: Embed resource
//Get all first-level directoriesList<string> devices = new List<string>(); string config= ().GetName().Name + "."; assembly = (); s = (config); XmlReaderSettings settings = new XmlReaderSettings(); = true; XmlReader reader = (s, settings); XmlDocument doc = new XmlDocument(); (reader); XmlNode xn = ("Config"); XmlNodeList xnl1 = ; foreach (XmlNode xn1 in xnl1) { XmlElement xe1 = (XmlElement)xn1; (("name").ToString()); } (); return devices;
//Get a subdirectory under a first-level directoryList<string> types = new List<string>(); string config= ().GetName().Name + "."; assembly = (); s = (config); XmlReaderSettings settings = new XmlReaderSettings(); = true; XmlReader reader = (s, settings); XmlDocument doc = new XmlDocument(); (reader); XmlNode xn = ("Config"); XmlNodeList xnl1 = ; foreach (XmlNode xn1 in xnl1) { XmlElement xe1 = (XmlElement)xn1; if (("name").ToString() == "aaa") { XmlNodeList xnl2 = ; foreach (XmlNode xn2 in xnl2) { XmlElement xe2 = (XmlElement)xn2; (("name").ToString()); } break; } } (); return types;
3. Methods to read XML files in class library
File properties:
Copy to output directory: Don't copy
Generate operation: Resource
List<Type> types = new List<Type>(); string fileName = + ""; assembly = (fileName); string resourceName = ().Name + ".g"; manager = new (resourceName, assembly); object obj = ("asserts/");// All letters lowercase stream = ()obj; XmlDocument doc = new XmlDocument(); XmlReaderSettings settings = new XmlReaderSettings(); = true;//Ignore the comments in the document, because without special explanation, the comments are also a nodeXmlReader reader = (stream, settings); (reader); XmlNode xn = ("Config"); XmlNodeList xnl1 = ; foreach (XmlNode xn1 in xnl1) { XmlElement xe1 = (XmlElement)xn1; Type type = new Type(); = ("name").ToString(); = ("func").ToString(); XmlNodeList xnl0 = ; = (0).(1).TrimEnd(); (type); } (); return types;
4. Read externally visible XML files added in the program
File properties:
Copy to output directory: Always copy
Generate operation: Content
List<string> devices= new List<string>(); XmlDocument doc = new XmlDocument(); XmlReaderSettings settings = new XmlReaderSettings(); = true; XmlReader reader = (@"Asserts\", settings); (reader); XmlNode xn = ("Config"); XmlNodeList xnl1 = ; foreach (XmlNode xn1 in xnl1) { XmlElement xe1 = (XmlElement)xn1; (("name").ToString()); } (); return serialsList;
Summarize
The above is personal experience. I hope you can give you a reference and I hope you can support me more.