111,125
社区成员
发帖
与我相关
我的任务
分享
xml文件内容
<?xml version="1.0" encoding="utf-8" ?>
<Connection>
<DataBase>myDataBase</DataBase>
<PassWord>myPassWord</PassWord>
<UserID>myUserID</UserID>
<Server>myServer</Server>
</Connection>
现有实体类
class Conn
{
private string dataBase;
public string DataBase
{
get { return dataBase; }
set { dataBase = value; }
}
private string passWord;
public string PassWord
{
get { return passWord; }
set { passWord = value; }
}
private string userID;
public string UserID
{
get { return userID; }
set { userID = value; }
}
private string server;
public string Server
{
get { return server; }
set { server = value; }
}
}
解析xml并给类属性动态赋值代码
class XmlOperate
{
static void Main(string[] args)
{
XmlDocument xd = new XmlDocument();
xd.Load("../../MyXml.xml");
XmlNodeList list = xd.ChildNodes;
Conn con = new Conn();
Test test = new Test();
Type type = con.GetType();
foreach (XmlNode var in list)
{
ReadXmlAndInitClass(var,type);
}
Console.WriteLine("DataBase:"+con.DataBase);
Console.ReadLine();
}
static void ReadXmlAndInitClass(XmlNode node,Type type)
{
if (node.ChildNodes.Count == 1)
{
string name = node.Name;
string value = node.Value;
PropertyInfo[] infos = type.GetProperties(BindingFlags.Public | BindingFlags.Instance);
foreach (PropertyInfo pi in infos)
{
if (pi.Name == name)
pi.SetValue(pi.PropertyType, value, null);
Console.WriteLine("xmlName:" + name +" xmlValue: "+value + " PropertiesName= " + pi.Name);
}
}
else
{
XmlNodeList list = node.ChildNodes;
foreach (XmlNode var in list)
{
ReadXmlAndInitClass(var, type);
}
}
}
}