Преобразование части элемента XML в класс в C # - PullRequest
0 голосов
/ 30 сентября 2019

Я вызываю API, который возвращает XML в следующем формате: (скриншот) xmlstring

string xmlstring = "<?xml version='1.0' encoding='iso-8859-1'?>" +
  "<XMLStore >" +
    "<Requests>" +
      "<SessionListRequest application_id='' execute='0' id='SessionListRequest1' limit='' owner='' precedence='1' request_state='1' result_parent='.' session_id=''>" +
        "<SessionList>" +
          "<SessionListItem application_id='' create_time='2018-06-01 13:46:19.980' expiration_time='2019-06-01 13:46:19.980' owner='ADMIN' session_id='1599956' timeout='525600'/>" +
          "<SessionListItem application_id='' create_time='2018-06-01 13:48:44.950' expiration_time='2019-06-01 13:48:44.950' owner='ADMIN' session_id='1599960' timeout='525600'/>" +
          "<SessionListItem application_id='' create_time='2018-07-30 12:11:35.363' expiration_time='2019-07-30 12:11:35.363' owner='ADMIN' session_id='1736196' timeout='525600'/>" +
          "<SessionListItem application_id='' create_time='2019-07-30 06:48:00.763' expiration_time='2020-07-29 06:48:00.763' owner='WSADMIN' session_id='3709176' timeout='525600'/>" +
        "</SessionList>" +
      "</SessionListRequest>" +
    "</Requests>" +
  "</XMLStore>";

Я хотел бы отобразить атрибуты SessionListItem в класс. Пробовал много способов, используя XmlDocument и Xelement, ничего не работает, как ожидалось.

var rootElement = XElement.Parse(xmlstring);
XElement el = rootElement.Element("Requests").Element("SessionListRequest").Element("SessionList");
//var els = (from elm in el
//           select elm).ToList();
var serializer = new XmlSerializer(typeof(SessionList));
var data = (SessionList)serializer.Deserialize(el.CreateReader());

SessionsList - это класс, обладающий свойствами, аналогичными атрибутам элемента SessionListItem. приведенный выше код не будет отображать атрибуты, вместо этого он ожидает элементы.

Пожалуйста, дайте мне знать, если есть какой-либо другой способ, которым я могу сопоставить это с классом и отправить ответ в методе WEB API как объект класса.

Заранее спасибо !!!

...