经过3天的测试验证发现使用XmlDocument读取XML文件的各个节点的值很容易实现。
测试XML文件如下 products.xml:
<Table>
<Product>
<Product_id>1</Product_id>
<Product_name>Product 1</Product_name>
<Product_price>1000</Product_price>
</Product>
<Product>
<Product_id>2</Product_id>
<Product_name>Product 2</Product_name>
<Product_price>2000</Product_price>
</Product>
<Product>
<Product_id>3</Product_id>
<Product_name>Product 3</Product_name>
<Product_price>3000</Product_price>
</Product>
<Product>
<Product_id>4</Product_id>
<Product_name>Product 4</Product_name>
<Product_price>4000</Product_price>
</Product>
</Table>
测试代码:
string xmlFile = @"../../../products.xml";
XmlDocument xdoc = new XmlDocument();
xdoc.Load(xmlFile);
XmlNodeList nList = xdoc.SelectNodes("/Table/Product");
Console.WriteLine($"总结点数量:{ nList.Count}");
foreach (XmlNode n in nList)
{
Console.WriteLine(n["Product_id"].InnerText);
Console.WriteLine(n["Product_name"].InnerText);
Console.WriteLine(n["Product_price"].InnerText);
Console.WriteLine("======================");
}
输出:
总结点数量:4
1
Product 1
1000
======================
2
Product 2
2000
======================
3
Product 3
3000
======================
4
Product 4
4000
======================
可以看出使用 XmlDocument的实例对象的Load方法可直接加载XML文件。
使用 SelectNodes("/Table/Product"),参数为XPath,可以选择该路径下的所有元素,Count属性为4,和4个Product节点相吻合。使用foreach 遍历每个子元素的子元素的值,使用节点名称和innerText属性即可。