1

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

  <?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。对于那个很抱歉。谢谢

4

1 回答 1

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在 items 变量中获得 6,在您的foreach中,您将MonetaryValue在字符串变量中获得 element 的值monetaryValue

于 2012-06-13T00:15:29.960 回答