前面介绍了使用XmlTextReader读取XML文件,XmlDocuemt读取XML文件,XDocument类来读取XML文件。接下测试使用XElement类来读取XML文件,有了如上几个示例,读取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>
测试代码如下:
XElement xEl = XElement.Load(xmlfile);
IEnumerable<XElement> querys = from el in xEl.Elements("Product").Elements()
select el;
foreach (var ele in querys)
{
Console.WriteLine($"{ele.Name} --> {ele.Value}");
}
输出:
Product_id --> 1
Product_name --> Product 1
Product_price --> 1000
Product_id --> 2
Product_name --> Product 2
Product_price --> 2000
Product_id --> 3
Product_name --> Product 3
Product_price --> 3000
Product_id --> 4
Product_name --> Product 4
Product_price --> 4000
在Linq查询语句中选择了Product节点下的所有子元素,所有可以直接遍历查询集合中的元素的名称和值。刚好输出了所有子元素的名称和对应的值。