Необходимо отбрасывать каждый экземпляр "Score" после первого появления в каждой строке - PullRequest
0 голосов
/ 07 марта 2019
<RepairOrderEvent>
      <EventType>Advisor - Shared Guidelines</EventType>
      <EventDateTime>2019-01-07T11:18:38.8756279-06:00</EventDateTime>
      <EventNotes>FAF: Refinish Time without Haz Waste or EPC Charge; Score: 11; Variance: 0.0; UniqueSequenceNum: 0; Insurance Score: 40</EventNotes>
    </RepairOrderEvent>
    <RepairOrderEvent>
      <EventType>Advisor - Shared Guidelines</EventType>
      <EventDateTime>2019-01-07T11:18:38.8756279-06:00</EventDateTime>
      <EventNotes>FAF(Best Practice): Must Enter If Vehicle is Drivable; Score: 11; Variance: 0.0; UniqueSequenceNum: 0</EventNotes>
    </RepairOrderEvent>
    <RepairOrderEvent>
      <EventType>Advisor - Shared Guidelines</EventType>
      <EventDateTime>2019-01-07T11:18:38.8756279-06:00</EventDateTime>
      <EventNotes>FAF(Best Practice): Bumper Overlap Prompt Answered Yes, No Estimate Line Note; Score: 11; Variance: 0.0; UniqueSequenceNum: 2; Insurance Score: 25</EventNotes>
    </RepairOrderEvent>
    <RepairOrderEvent>
      <EventType>Advisor - Shared Guidelines</EventType>
      <EventDateTime>2019-01-07T11:18:38.8756279-06:00</EventDateTime>
      <EventNotes>FAF(Document): Insufficient Photos Provided: Include Damage Area; Score: 11; Variance: 0.0; UniqueSequenceNum: 0; Insurance Score: 10000</EventNotes>
    </RepairOrderEvent>

У меня есть следующие данные XML. Я пытаюсь найти совокупность «балл», а не «балл» + «Страховой балл». Я думал об использовании Xpath, чтобы найти первое вхождение оценки в каждой строке и удалить оставшуюся часть строки. Конечной целью здесь является возможность прочитать каждую строку для первого вхождения, удалить оставшуюся часть строки и найти сумму баллов.

Любые предложения или помощь приветствуется и ценится. Благодарю вас!

1 Ответ

0 голосов
/ 07 марта 2019

Как только вы окажетесь в точке, где вы обрабатываете значения EventNotes, вы можете сделать что-то подобное, предполагая, что у каждого EventNotes есть своего рода "Оценка".

  var num = eventNotes
    .Select(note => note
      .Split(";")
      .Where(part => part.Contains("Score"))
      .Select(score => int.Parse(score.Split(' ')[1]))
      .First())
    .Aggregate((sum, val) => sum + val);

Что даст вам сумму всех первых появлений оценки во всех EventNotes. Это предполагает, что у вас уже есть часть синтаксического анализа XML.

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