XML的LINQ操作

我喜欢用的新东西,虽然LINQ出来很久了,一直没有机会用一下,这次有个东西正好可以小试一下,部分代码来自MSDN

http://msdn.microsoft.com/zh-cn/library/bb387098.aspx

函数与过程性编程 (LINQ to XML)

总览介绍编写 LINQ to XML 应用程序的两种主要方法。

LINQ to XML 类概述

提供 LINQ to XML 类的概述。

XElement 类概述

介绍 XElement 类,该类表示 XML 元素。XElement 是 LINQ to XML 类层次结构中的基础类之一。

XAttribute 类概述

介绍 XAttribute 类,该类表示 XML 属性。

XDocument 类概述

介绍 XDocument 类,该类表示 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

>




1 示例循环访问 purchaseOrder 元素的子元素。

 

XElement po = XElement.Load("PurchaseOrder.xml" ); IEnumerable<XElement> childElements = from el in po.Elements() select el;

 

foreach (XElement el in childElements) Console.WriteLine("Name: " + el.Name);

 

 

2

XElement po = XElement.Load("PurchaseOrder.xml" ); IEnumerable<XElement> items = from el in po.Descendants("ProductName" ) select el;

 

foreach (XElement prdName in items) Console.WriteLine(prdName.Name + ":" + (string ) prdName);

 

3 查询操作

IEnumerable<string
> partNos =
from item in purchaseOrder.Descendants("Item" )

IEnumerable<XElement> partNos =
from item in purchaseOrder.Descendants("Item" )
where (int ) item.Element("Quantity" ) *
(decimal) item.Element("USPrice" ) > 100
orderby (string )item.Element("PartNumber" )
select item;

select (string ) item.Attribute("PartNumber" );
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值