C#读取XML文件的方法
直接上代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
using System.Diagnostics;
namespace ConsoleApp14
{
class Program
{
static void Main(string[] args)
{
getValue("system", "srcPath");
}
/// <summary>
/// 获取XML配置文件的值
/// </summary>
/// <param name="section"></param>
/// <param name="key"></param>
/// <returns></returns>
public static string getValue(string section, string key)
{
string retValue = string.Empty;
XmlDocument xd = new XmlDocument();
xd.Load("C:\\Users\\Administrator\\source\\repos\\ConsoleApp14\\ConsoleApp14\\bin\\Debug\\configlFile.xml");
XmlElement xe = xd.DocumentElement;
if (xe.Name == "configuration")
{
//根据固定的文档结构查找指定配置项
foreach (System.Xml.XmlLinkedNode xcea in xe.ChildNodes)
{
if (xcea.NodeType != System.Xml.XmlNodeType.Element) //如果不是元素,继续
{
continue;
}
System.Xml.XmlElement xce = (System.Xml.XmlElement)xcea;
if ((xce.NodeType == System.Xml.XmlNodeType.Element) && (xce.HasAttributes) && (xce.Name == "Section"))
{
if (xce.Attributes[0].Name == "Name" && xce.Attributes[0].Value == section) // 通过属性判断当前元素是否是需要查找的配置项
{
foreach (System.Xml.XmlLinkedNode xccea in xce.ChildNodes)
{
if (xccea.NodeType != System.Xml.XmlNodeType.Element) //如果不是元素,继续
{
continue;
}
System.Xml.XmlElement xcce = (System.Xml.XmlElement)xccea;
if (xcce.NodeType == System.Xml.XmlNodeType.Element && xcce.HasAttributes && xcce.Name == "Key")
{
if (xcce.Attributes[0].Name == "Name" && xcce.Attributes[0].Value == key)
{
if (string.IsNullOrEmpty(retValue))
{
retValue = xcce.Attributes[1].Value;
}
else
{
retValue = retValue + "," + xcce.Attributes[1].Value;
}
}
}
}
}
}
}
}
return retValue;
}
}
}