从c#中的xml文件中选择多个值

时间:2012-06-12 23:48:21

标签: c# asp.net xml xmlnode

我正在尝试从xml文档中选择三个值。 我想从节点中获取值。 xml文件中有五个值,我想知道采用它们的最佳方法是什么。 请在下面找到xml文件。 提前谢谢,Laziel

  <?xml version="1.0" encoding="UTF-8"?>
<RatingServiceSelectionResponse>
   <Response>
      <TransactionReference>
         <CustomerContext>Bare Bones Rate Request</CustomerContext>
         <XpciVersion>1.0001</XpciVersion>
      </TransactionReference>
      <ResponseStatusCode>1</ResponseStatusCode>
      <ResponseStatusDescription>Success</ResponseStatusDescription>
   </Response>
   <RatedShipment>
      <Service>
         <Code>03</Code>
      </Service>
      <RatedShipmentWarning>Your invoice may vary from the displayed reference rates</RatedShipmentWarning>
      <BillingWeight>
         <UnitOfMeasurement>
            <Code>LBS</Code>
         </UnitOfMeasurement>
         <Weight>34.0</Weight>
      </BillingWeight>
      <TransportationCharges>
         <CurrencyCode>USD</CurrencyCode>
         <MonetaryValue>32.44</MonetaryValue>
      </TransportationCharges>
      <ServiceOptionsCharges>
         <CurrencyCode>USD</CurrencyCode>
         <MonetaryValue>0.00</MonetaryValue>
      </ServiceOptionsCharges>
      <TotalCharges>
         <CurrencyCode>USD</CurrencyCode>
         <MonetaryValue>32.44</MonetaryValue>
      </TotalCharges>
      <GuaranteedDaysToDelivery />
      <ScheduledDeliveryTime />
      <RatedPackage>
         <TransportationCharges>
            <CurrencyCode>USD</CurrencyCode>
            <MonetaryValue>32.44</MonetaryValue>
         </TransportationCharges>
         <ServiceOptionsCharges>
            <CurrencyCode>USD</CurrencyCode>
            <MonetaryValue>0.00</MonetaryValue>
         </ServiceOptionsCharges>
         <TotalCharges>
            <CurrencyCode>USD</CurrencyCode>
            <MonetaryValue>32.44</MonetaryValue>
         </TotalCharges>
         <Weight>13.0</Weight>
         <BillingWeight>
            <UnitOfMeasurement>
               <Code>LBS</Code>
            </UnitOfMeasurement>
            <Weight>34.0</Weight>
         </BillingWeight>
      </RatedPackage>
      <NegotiatedRates>
         <NetSummaryCharges>
            <GrandTotal>
               <CurrencyCode>USD</CurrencyCode>
               <MonetaryValue>24.52</MonetaryValue>
            </GrandTotal>
         </NetSummaryCharges>
      </NegotiatedRates>
   </RatedShipment>
   <RatedShipment>
      <Service>
         <Code>12</Code>
      </Service>
      <RatedShipmentWarning>Your invoice may vary from the displayed reference rates</RatedShipmentWarning>
      <BillingWeight>
         <UnitOfMeasurement>
            <Code>LBS</Code>
         </UnitOfMeasurement>
         <Weight>34.0</Weight>
      </BillingWeight>
      <TransportationCharges>
         <CurrencyCode>USD</CurrencyCode>
         <MonetaryValue>93.32</MonetaryValue>
      </TransportationCharges>
      <ServiceOptionsCharges>
         <CurrencyCode>USD</CurrencyCode>
         <MonetaryValue>0.00</MonetaryValue>
      </ServiceOptionsCharges>
      <TotalCharges>
         <CurrencyCode>USD</CurrencyCode>
         <MonetaryValue>93.32</MonetaryValue>
      </TotalCharges>
      <GuaranteedDaysToDelivery>3</GuaranteedDaysToDelivery>
      <ScheduledDeliveryTime />
      <RatedPackage>
         <TransportationCharges>
            <CurrencyCode>USD</CurrencyCode>
            <MonetaryValue>93.32</MonetaryValue>
         </TransportationCharges>
         <ServiceOptionsCharges>
            <CurrencyCode>USD</CurrencyCode>
            <MonetaryValue>0.00</MonetaryValue>
         </ServiceOptionsCharges>
         <TotalCharges>
            <CurrencyCode>USD</CurrencyCode>
            <MonetaryValue>93.32</MonetaryValue>
         </TotalCharges>
         <Weight>13.0</Weight>
         <BillingWeight>
            <UnitOfMeasurement>
               <Code>LBS</Code>
            </UnitOfMeasurement>
            <Weight>34.0</Weight>
         </BillingWeight>
      </RatedPackage>
      <NegotiatedRates>
         <NetSummaryCharges>
            <GrandTotal>
               <CurrencyCode>USD</CurrencyCode>
               <MonetaryValue>69.95</MonetaryValue>
            </GrandTotal>
         </NetSummaryCharges>
      </NegotiatedRates>
   </RatedShipment>
   <RatedShipment>
      <Service>
         <Code>02</Code>
      </Service>
      <RatedShipmentWarning>Your invoice may vary from the displayed reference rates</RatedShipmentWarning>
      <BillingWeight>
         <UnitOfMeasurement>
            <Code>LBS</Code>
         </UnitOfMeasurement>
         <Weight>34.0</Weight>
      </BillingWeight>
      <TransportationCharges>
         <CurrencyCode>USD</CurrencyCode>
         <MonetaryValue>148.56</MonetaryValue>
      </TransportationCharges>
      <ServiceOptionsCharges>
         <CurrencyCode>USD</CurrencyCode>
         <MonetaryValue>0.00</MonetaryValue>
      </ServiceOptionsCharges>
      <TotalCharges>
         <CurrencyCode>USD</CurrencyCode>
         <MonetaryValue>148.56</MonetaryValue>
      </TotalCharges>
      <GuaranteedDaysToDelivery>2</GuaranteedDaysToDelivery>
      <ScheduledDeliveryTime />
      <RatedPackage>
         <TransportationCharges>
            <CurrencyCode>USD</CurrencyCode>
            <MonetaryValue>148.56</MonetaryValue>
         </TransportationCharges>
         <ServiceOptionsCharges>
            <CurrencyCode>USD</CurrencyCode>
            <MonetaryValue>0.00</MonetaryValue>
         </ServiceOptionsCharges>
         <TotalCharges>
            <CurrencyCode>USD</CurrencyCode>
            <MonetaryValue>148.56</MonetaryValue>
         </TotalCharges>
         <Weight>13.0</Weight>
         <BillingWeight>
            <UnitOfMeasurement>
               <Code>LBS</Code>
            </UnitOfMeasurement>
            <Weight>34.0</Weight>
         </BillingWeight>
      </RatedPackage>
      <NegotiatedRates>
         <NetSummaryCharges>
            <GrandTotal>
               <CurrencyCode>USD</CurrencyCode>
               <MonetaryValue>99.21</MonetaryValue>
            </GrandTotal>
         </NetSummaryCharges>
      </NegotiatedRates>
   </RatedShipment>
   <RatedShipment>
      <Service>
         <Code>13</Code>
      </Service>
      <RatedShipmentWarning>Your invoice may vary from the displayed reference rates</RatedShipmentWarning>
      <BillingWeight>
         <UnitOfMeasurement>
            <Code>LBS</Code>
         </UnitOfMeasurement>
         <Weight>34.0</Weight>
      </BillingWeight>
      <TransportationCharges>
         <CurrencyCode>USD</CurrencyCode>
         <MonetaryValue>204.04</MonetaryValue>
      </TransportationCharges>
      <ServiceOptionsCharges>
         <CurrencyCode>USD</CurrencyCode>
         <MonetaryValue>0.00</MonetaryValue>
      </ServiceOptionsCharges>
      <TotalCharges>
         <CurrencyCode>USD</CurrencyCode>
         <MonetaryValue>204.04</MonetaryValue>
      </TotalCharges>
      <GuaranteedDaysToDelivery>1</GuaranteedDaysToDelivery>
      <ScheduledDeliveryTime />
      <RatedPackage>
         <TransportationCharges>
            <CurrencyCode>USD</CurrencyCode>
            <MonetaryValue>204.04</MonetaryValue>
         </TransportationCharges>
         <ServiceOptionsCharges>
            <CurrencyCode>USD</CurrencyCode>
            <MonetaryValue>0.00</MonetaryValue>
         </ServiceOptionsCharges>
         <TotalCharges>
            <CurrencyCode>USD</CurrencyCode>
            <MonetaryValue>204.04</MonetaryValue>
         </TotalCharges>
         <Weight>13.0</Weight>
         <BillingWeight>
            <UnitOfMeasurement>
               <Code>LBS</Code>
            </UnitOfMeasurement>
            <Weight>34.0</Weight>
         </BillingWeight>
      </RatedPackage>
      <NegotiatedRates>
         <NetSummaryCharges>
            <GrandTotal>
               <CurrencyCode>USD</CurrencyCode>
               <MonetaryValue>129.82</MonetaryValue>
            </GrandTotal>
         </NetSummaryCharges>
      </NegotiatedRates>
   </RatedShipment>
   <RatedShipment>
      <Service>
         <Code>14</Code>
      </Service>
      <RatedShipmentWarning>Your invoice may vary from the displayed reference rates</RatedShipmentWarning>
      <BillingWeight>
         <UnitOfMeasurement>
            <Code>LBS</Code>
         </UnitOfMeasurement>
         <Weight>34.0</Weight>
      </BillingWeight>
      <TransportationCharges>
         <CurrencyCode>USD</CurrencyCode>
         <MonetaryValue>248.35</MonetaryValue>
      </TransportationCharges>
      <ServiceOptionsCharges>
         <CurrencyCode>USD</CurrencyCode>
         <MonetaryValue>0.00</MonetaryValue>
      </ServiceOptionsCharges>
      <TotalCharges>
         <CurrencyCode>USD</CurrencyCode>
         <MonetaryValue>248.35</MonetaryValue>
      </TotalCharges>
      <GuaranteedDaysToDelivery>1</GuaranteedDaysToDelivery>
      <ScheduledDeliveryTime>8:00 A.M.</ScheduledDeliveryTime>
      <RatedPackage>
         <TransportationCharges>
            <CurrencyCode>USD</CurrencyCode>
            <MonetaryValue>248.35</MonetaryValue>
         </TransportationCharges>
         <ServiceOptionsCharges>
            <CurrencyCode>USD</CurrencyCode>
            <MonetaryValue>0.00</MonetaryValue>
         </ServiceOptionsCharges>
         <TotalCharges>
            <CurrencyCode>USD</CurrencyCode>
            <MonetaryValue>248.35</MonetaryValue>
         </TotalCharges>
         <Weight>13.0</Weight>
         <BillingWeight>
            <UnitOfMeasurement>
               <Code>LBS</Code>
            </UnitOfMeasurement>
            <Weight>34.0</Weight>
         </BillingWeight>
      </RatedPackage>
      <NegotiatedRates>
         <NetSummaryCharges>
            <GrandTotal>
               <CurrencyCode>USD</CurrencyCode>
               <MonetaryValue>248.35</MonetaryValue>
            </GrandTotal>
         </NetSummaryCharges>
      </NegotiatedRates>
   </RatedShipment>
   <RatedShipment>
      <Service>
         <Code>01</Code>
      </Service>
      <RatedShipmentWarning>Your invoice may vary from the displayed reference rates</RatedShipmentWarning>
      <BillingWeight>
         <UnitOfMeasurement>
            <Code>LBS</Code>
         </UnitOfMeasurement>
         <Weight>34.0</Weight>
      </BillingWeight>
      <TransportationCharges>
         <CurrencyCode>USD</CurrencyCode>
         <MonetaryValue>212.86</MonetaryValue>
      </TransportationCharges>
      <ServiceOptionsCharges>
         <CurrencyCode>USD</CurrencyCode>
         <MonetaryValue>0.00</MonetaryValue>
      </ServiceOptionsCharges>
      <TotalCharges>
         <CurrencyCode>USD</CurrencyCode>
         <MonetaryValue>212.86</MonetaryValue>
      </TotalCharges>
      <GuaranteedDaysToDelivery>1</GuaranteedDaysToDelivery>
      <ScheduledDeliveryTime>10:30 A.M.</ScheduledDeliveryTime>
      <RatedPackage>
         <TransportationCharges>
            <CurrencyCode>USD</CurrencyCode>
            <MonetaryValue>212.86</MonetaryValue>
         </TransportationCharges>
         <ServiceOptionsCharges>
            <CurrencyCode>USD</CurrencyCode>
            <MonetaryValue>0.00</MonetaryValue>
         </ServiceOptionsCharges>
         <TotalCharges>
            <CurrencyCode>USD</CurrencyCode>
            <MonetaryValue>212.86</MonetaryValue>
         </TotalCharges>
         <Weight>13.0</Weight>
         <BillingWeight>
            <UnitOfMeasurement>
               <Code>LBS</Code>
            </UnitOfMeasurement>
            <Weight>34.0</Weight>
         </BillingWeight>
      </RatedPackage>
      <NegotiatedRates>
         <NetSummaryCharges>
            <GrandTotal>
               <CurrencyCode>USD</CurrencyCode>
               <MonetaryValue>135.38</MonetaryValue>
            </GrandTotal>
         </NetSummaryCharges>
      </NegotiatedRates>
   </RatedShipment>
</RatingServiceSelectionResponse>

编辑:我需要从NegotiatedRates元素中获取MonetaryValue。 对于那个很抱歉。感谢

1 个答案:

答案 0 :(得分:2)

使用LINQtoXML来处理此

string filePath = Server.MapPath(@"../YourFileLocation/somexml.xml");

//you can load the XML from file/stream /string etc...

XElement elem = XElement.Load(filePath);
if (elem != null)
{
    var items = elem.Descendants("NegotiatedRates").ToList();
    foreach (var singleItem in items)
    {
        var mo = singleItem.Descendants("MonetaryValue").SingleOrDefault();
        string monetaryValue = mo.Value;
    }
}

根据您提供的XML,您将在items变量中获得6 items,在foreach内,您将获得MonetaryValue元素的值到字符串变量{{ 1}}