[代码]访问内存中的XML元素和元素属性(LINQ to XML)

本文介绍如何使用LINQtoXML加载并解析XML文档,通过XDocument.Descendants()方法获取所有Item子元素,再利用LINQtoXML查询每个元素的PartNumber属性并打印。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

此代码示范了如何使用LINQ to XML将XML文档加载到内存中,并且如何通过XDocument.Descendants()对象方法按着顺序获取指定名称的所有子元素,以及如何通过XElement.Attribute()方法来获取指定名称的元素属性,进而访问属性值。

下面的示例代码首先使用XDocument.Load()方法将文件中的XML加载到内存中,然后通过调用XDocument.Descendants()方法检索出元素名为Item的所有子元素,接着使用LINQ to XML查询这个返回结果集中每一个元素,获取元素的PartNumber属性,最后将其打印到控制台上。


所用到的XML文档如下:
<?xml version="1.0"?> <PurchaseOrder PurchaseOrderNumber="99503" OrderDate="1999-10-20"> <Address Type="Shipping"> <Name>Ellen Adams</Name> <Street>123 Maple Street</Street> <City>Mill Valley</City> <State>CA</State> <Zip>10999</Zip> <Country>USA</Country> </Address> <Address Type="Billing"> <Name>Tai Yee</Name> <Street>8 Oak Avenue</Street> <City>Old Town</City> <State>PA</State> <Zip>95819</Zip> <Country>USA</Country> </Address> <DeliveryNotes>Please leave packages in shed by driveway.</DeliveryNotes> <Items> <Item PartNumber="872-AA"> <ProductName>Lawnmower</ProductName> <Quantity>1</Quantity> <USPrice>148.95</USPrice> <Comment>Confirm this is electric</Comment> </Item> <Item PartNumber="926-AA"> <ProductName>Baby Monitor</ProductName> <Quantity>2</Quantity> <USPrice>39.98</USPrice> <ShipDate>1999-05-21</ShipDate> </Item> </Items> </PurchaseOrder>
示例代码:
static void Main(string[] args) { XDocument PurchaseOrderDocument = XDocument.Load(@"C:/LINQ/PurchaseOrder.xml"); IEnumerable<XElement> ItemElements = PurchaseOrderDocument.Descendants ("Item"); IEnumerable<string> PartNumbers = from Item in ItemElements select Item.Attribute ("PartNumber").ToString(); foreach (string PartNumber in PartNumbers) { Console.WriteLine(PartNumber); } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值