1.首先设置测试xml文件
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup version="v4.0" sku=".NETFramework,Version=v4.8">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup>
<startup1>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup1>
</configuration>
2.在代码中加载到XmlDocument
3.第一个节点加载比较特殊,使用XmlDocument里面的SelectSingleNode方法
string ConfigPath = System.Windows.Forms.Application.StartupPath + "\\Config\\test.xml"; //配置文件的路径
//加载到XmlDocument
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(ConfigPath);
XmlNode xmlNode = xmlDoc.SelectSingleNode("configuration");
XmlNodeList xmlNodeList = xmlNode.ChildNodes; //这个不用也可以,直接循环xmlNode
string tmp1 = xmlNode.Name;
foreach (XmlNode xmlNode2 in xmlNodeList)
{
string tmp2 = xmlNode2.Name;
string tmp3 = GetAttribute(xmlNode2, "sku");
string tmp4 = GetAttribute(xmlNode2, "version");
}
4.GetAttribute方法就是简单的键值对获取属性值:return xmlNode.Attribute[attributeName].value;
注意:使用Application.StartupPath要添加引用:System.Windows.Form; 再添加命名空间
补充:
1.获取根节点可以使用:XmlNode rootNode = xmlDoc.DocumentElement; //xmlDoc是对象XmlDocument的实例;
2.加载形式如:”<name>梨花1</name>“
使用:xmlNode.InnerText
------------------------------------------------------------XML读取器---------------------------------------------------
可以自动读取结点,可以用这个方法读版本信息等,适合简单少量的读取
XML中任意合法的位置添加版本信息
<DataInfo>
<Version vNo="1.2" pTime="2023-10-10">版本信息</Version>
</DataInfo>
1.创建XML读取器:XmlTextReader tReader = new XmlTextReader(”xml文件的路径“); (2022版的vs没有这个的智能提示)
2.使用While循环tReader.Read(), 使用tReader.Name判断节点名,tReader.GetAttribute(键名)获取值名
样例:
XmlTextReader tReader = new XmlTextReader("D:\\02XMLDemo\\XMLFile1.xml");
string info = String.Empty;
while (tReader.Read())
{
if (tReader.Name == "Version")
{
info += tReader.GetAttribute("vNo") + "---" + tReader.GetAttribute("pTime");
}
}