У меня проблемы с анализом строки XML, в которой родительский и дочерний узлы имеют одинаковые имена тегов.Очевидно, я мог бы заменить теги open / close пустыми строками и разобрать с кодом ниже, но это не элегантно.
Я искал и вижу, что есть ответы на то, как сделать это с XDocument, ноЯ специально хотел бы сделать это с XmlSerializer (если возможно).
Ниже приведен минимальный воспроизводимый пример.
Пример XML:
<AddJob>
<AddJob RequestStatus="OK" RequestMessage="Job successfuly added [testPrintServer.tif, PES_Carpet_16C_76.2 x 50.8 dpi_170517_Normal]" UUID="74ad5971-7baf-49ce-b85b-ee08188d5721" />
</AddJob>
Код синтаксического анализа:
public class XmlHelper
{
public static T Deserialize<T>(string xml)
{
var serializer = new XmlSerializer(typeof(T));
T result;
using (var reader = new StringReader(xml))
{
result = (T)serializer.Deserialize(reader);
}
return result;
}
}
Модель данных:
[XmlRoot("AddJob")]
public class AddJob
{
[XmlAttribute]
public string RequestStatus { get; set; }
[XmlAttribute]
public string RequestMessage { get; set; }
[XmlAttribute("UUID")]
public string RipJobId { get; set; }
}
Телефонный код:
var addedJobResponse = XmlHelper.Deserialize<AddJob>(exampleXml);