Обновите значения элемента узла xml - PullRequest
0 голосов
/ 25 марта 2019

Я пытаюсь обновить значения элементов узла в документе XML на значения из базы данных. Сохраните документ. Затем отправьте документ через HTTP POST в c #. Код, который я до сих пор чувствую, почти есть, но он не совсем корректно работает. Может кто-нибудь помочь мне разобраться с этим на работе? Спасибо.

        string xmlFile = Server.MapPath("~/Requests/Request_v24.xml");
        XDocument xmlDoc = XDocument.Load(xmlFile);
        var doc = XDocument.Parse(xmlDoc.ToString());
        List<XElement> xElementList = doc.Descendants().ToList();
        try
        {
           foreach(record in database){
            foreach(XElement e in xElementList)
            {
                if (e.HasElements)
                {
                    e.Element("PostalCode").Value = record.Zipcode;
                    e.Element("Weight").Value = record.Weight;
                }
            }
            xmlDoc.Save(Server.MapPath("~/Requests/Request_v24.xml"));
          }
        }
        catch (System.Xml.XmlException e)
        {
            Debug.WriteLine(e.Message);
        }

    XML:
        "<RateRequest>
      <Version>
        <ServiceId>crs</ServiceId>
        <Major>24</Major>
        <Intermediate>0</Intermediate>
        <Minor>0</Minor>
      </Version>
      <ReturnTransitAndCommit>1</ReturnTransitAndCommit>
      <RequestedShipment>
        <ShipTimestamp>2019-03-22T15:45:22.836Z</ShipTimestamp>
        <DropoffType>REGULAR_PICKUP</DropoffType>
        <ServiceType>FEDEX_GROUND</ServiceType>
        <PackagingType>YOUR_PACKAGING</PackagingType>
        <TotalWeight>
          <Units>LB</Units>
          <Value>25</Value>
        </TotalWeight>
        <PreferredCurrency>USD</PreferredCurrency>
        <Shipper>
          <Address>
            <PostalCode>32809</PostalCode>
            <CountryCode>US</CountryCode>
          </Address>
        </Shipper>
        <Recipient>
          <Address>
            <PostalCode>33467</PostalCode>
            <CountryCode>US</CountryCode>
          </Address>
        </Recipient>
        <PackageCount>1</PackageCount>
        <RequestedPackageLineItems>
          <SequenceNumber>1</SequenceNumber>
          <GroupPackageCount>1</GroupPackageCount>
          <InsuredValue>
            <Currency>USD</Currency>
            <Amount>100.00</Amount>
          </InsuredValue>
          <Weight>
            <Units>LB</Units>
            <Value>25</Value>
          </Weight>
          <Dimensions>
            <Length>12</Length>
            <Width>12</Width>
            <Height>12</Height>
            <Units>IN</Units>
          </Dimensions>
        </RequestedPackageLineItems>
      </RequestedShipment>
    </RateRequest>"

Я получаю ошибку: ссылка на объект не установлена ​​для экземпляра объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...