SoFunction
Updated on 2025-03-03

C# Summary of various ways to obtain XML file content

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&lt;string&gt; devices = new List&lt;string&gt;();
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&lt;string&gt; types = new List&lt;string&gt;();
 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&lt;string&gt; devices = new List&lt;string&gt;();         
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&lt;string&gt; types = new List&lt;string&gt;();           
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&lt;Type&gt; types = new List&lt;Type&gt;();
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.