您的位置:首页 > 编程语言

[代码]获取XML元素的值(LINQ to XML)

2010-10-26 10:23 471 查看
此代码主要用来示范如何使用XElement.Element()方法获取指定名称的子元素,此方法只会返回一个子元素。

在代码中首先获取所有名为Item的元素,然后在LINQ to XML查询中,通过调用XElement.Element()方法获取名为Quantity和USPrice的子元素,然后据此返回大于100美元的订购项,最后将其打印到控制台上。

代码中用到的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>

示例代码:
XDocument PurchaseOrderDocument =
    XDocument.Load(@"C:/LINQ/PurchaseOrder.xml");
IEnumerable<XElement> ItemElements =
    PurchaseOrderDocument.Descendants("Item");

IEnumerable<XElement> Items =
    from Item in ItemElements
    where (int)Item.Element("Quantity") * (decimal)Item.Element("USPrice")  > 100
    orderby Item.Attribute("PartNumber").ToString()
    select Item;

foreach (XElement Item in Items)
{
    Console.WriteLine(Item.ToString());
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: