C# 使用XDocument读取XML文件

76 篇文章 1 订阅

上一篇文章测试了使用XmlDocument类读取XML文件,今天使用XDocment类测试读取XML文件。

测试XML文件仍是是Product.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>

测试代码如需:

添加引用

using System.Xml.Linq;

using System.Xml;


  XDocument xdoc = XDocument.Load(xmlFile);

  var querys = from n in xdoc.Root.Descendants("Product\_name")

                    select n;

        Console.WriteLine($"{querys.Count()}");

        foreach (XElement xel in querys)

        {

            Console.WriteLine($"{xel.Value}");

        }

输出:

4

Product 1

Product 2

Product 3

Product 4

首先得使用Load方法加载XML文件,使用Descendants筛选该参数名的元素,返回该元素的集合,可遍历该集合元素的值。

修改上查询方式:

        var query2 = from n in xdoc.Root.Descendants("Product")

                    select n;

        foreach (XElement el in query2)

        {

            Console.WriteLine(el.Element("Product\_id").Value);

            Console.WriteLine(el.Element("Product\_name").Value);

            Console.WriteLine(el.Element("Product\_price").Value);

        }

输出:

1

Product 1

1000

2

Product 2

2000

3

Product 3

3000

4

Product 4

4000

因为筛选的是Product节点,Descendants(“Product”)

所以可以获取该节点下的所有子节点的值。

感觉XDocment 类比XmlDocment类方便一些。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

flysh05

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值