Как обновить XML-файл в C #? - PullRequest
1 голос
/ 29 мая 2019

Ниже мой XML-файл

<MultiCentreDeals>
<DealItem>
<ID>24</ID>
<Days>
  <Day>
    <DayID>24-1</DayID>
    <DayTitle>Day 13</DayTitle>
    <Title>Meeting Point</Title>
    <HotelName>15</HotelName>
    <Description>Winter</Description>
  </Day>
  <Day>
    <DayID>24-2</DayID>
    <DayTitle>Day 2</DayTitle>
    <Title>Departure to Test</Title>
    <HotelName>54</HotelName>
    <Description>Two</Description>
 </Day>
 </Days>
 </DealItem>
<MultiCentreDeals>

Сначала я хочу получить данные в соответствии с идентификатором и DayID, а затем обновить узлы, принадлежащие этому.

1 Ответ

2 голосов
/ 29 мая 2019

Попробуйте как ниже,

 XDocument doc = XDocument.Load(Server.MapPath(xmlfilepath));
            Dictionary<string, XElement> CompleteDealSet = doc.Descendants("DealItem").GroupBy(x => (string)x.Element("ID"), y => y).ToDictionary(x => x.Key, y => y.FirstOrDefault());
            XElement Selected_Deal = CompleteDealSet[mc_ID];

            Dictionary<string, XElement> ItinerarySet = Selected_Deal.Descendants("Day").GroupBy(x => (string)x.Element("DayID"), y => y).ToDictionary(x => x.Key, y => y.FirstOrDefault());
            XElement selected_Itinerary = ItinerarySet[dayID];
            selected_Itinerary.Element("DayTitle").SetValue(multicentreDay);
            selected_Itinerary.Element("Title").SetValue(itineraryTitle);
            selected_Itinerary.Element("HotelName").SetValue(hotelName);
            selected_Itinerary.Element("Description").SetValue(multidayItineraryDescription);

            doc.Save(Server.MapPath(xmlfilepath));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...