使用C#将xml文件转化为Dictionary有以下几个步骤:
步骤一:引入相关命名空间
首先需要引入System.Xml和System.Collections.Generic两个命名空间,其中System.Xml用于操作XML文件,System.Collections.Generic用于操作泛型集合数据类型。
using System.Xml;
using System.Collections.Generic;
步骤二:读取Xml文件内容
使用XmlDocument类读取Xml文件的内容,通过Load方法加载Xml文件,然后可以使用GetElementsByTagName方法获取Xml根元素下面的所有节点元素。
XmlDocument xDoc = new XmlDocument();
xDoc.Load("myfile.xml");
XmlNodeList xNodes = xDoc.GetElementsByTagName("item");
步骤三:遍历Xml节点,并将节点的属性和子节点信息添加到Dictionary中
遍历节点信息,并将节点的属性和子节点信息添加到Dictionary中,其中传入的参数节点名称需要和Xml文件中的节点名称相匹配。
Dictionary<string, string> dict = new Dictionary<string, string>();
foreach (XmlNode xNode in xNodes)
{
if (xNode.Attributes != null && xNode.Attributes.Count > 0)
{
dict.Add(xNode.Attributes["name"].Value, xNode.Attributes["value"].Value);
}
else
{
dict.Add(xNode["name"].InnerText, xNode["value"].InnerText);
}
}
上面的示例代码中,在遍历节点信息时,首先判断节点是否拥有属性,如果有属性则直接读取属性添加到Dictionary中,否则读取子节点的信息添加到Dictionary中。
示例说明:
示例1:读取xml文件中的用户信息
Xml文件内容如下:
<?xml version="1.0" encoding="utf-8"?>
<items>
<item name="username" value="tom"/>
<item name="age" value="18"/>
<item name="gender" value="male"/>
</items>
使用上述代码读取该文件,可以将文件中的用户信息存储到一个Dictionary中:
XmlDocument xDoc = new XmlDocument();
xDoc.Load("userinfo.xml");
XmlNodeList xNodes = xDoc.GetElementsByTagName("item");
Dictionary<string, string> userDict = new Dictionary<string, string>();
foreach (XmlNode xNode in xNodes)
{
if (xNode.Attributes != null && xNode.Attributes.Count > 0)
{
userDict.Add(xNode.Attributes["name"].Value, xNode.Attributes["value"].Value);
}
}
这里读取的是一个用户信息文件,将文件中的用户名、年龄和性别添加到一个Dictionary中,其中以每个节点的name属性作为key,以其value属性作为value,最终得到的结果就是:
username=tom
age=18
gender=male
示例2:读取xml文件中的商品信息
Xml文件内容如下:
<?xml version="1.0" encoding="utf-8"?>
<items>
<item>
<name>iPhoneX</name>
<price>8000</price>
<desc>这是一个不错的手机</desc>
</item>
<item>
<name>Note10</name>
<price>9999</price>
<desc>非常良心的一款手机</desc>
</item>
</items>
使用上述代码读取该文件,可以将文件中的商品信息存储到一个Dictionary列表中:
XmlDocument xDoc = new XmlDocument();
xDoc.Load("product.xml");
XmlNodeList xNodes = xDoc.GetElementsByTagName("item");
List<Dictionary<string, string>> products = new List<Dictionary<string, string>>();
foreach (XmlNode xNode in xNodes)
{
Dictionary<string, string> dict = new Dictionary<string, string>();
dict.Add("name", xNode["name"].InnerText);
dict.Add("price", xNode["price"].InnerText);
dict.Add("desc", xNode["desc"].InnerText);
products.Add(dict);
}
这里读取的是一个商品信息文件,将文件中每个商品的名称、价格和描述添加到一个Dictionary中,最终得到的结果就是一个Dictionary列表,每个Dictionary元素包含一个商品的名称、价格和描述,例如以下两个元素:
{"name":"iPhoneX", "price":"8000", "desc":"这是一个不错的手机"}
{"name":"Note10", "price":"9999", "desc":"非常良心的一款手机"}
到这里为止,C#针对xml文件转化Dictionary的方法就讲解完毕了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#针对xml文件转化Dictionary的方法 - Python技术站